# Calix devices

# Mount Calix device

To mount the Calix device run:

curl -X PUT \
 http://localhost:8181/rests/data/network-topology:network-topology/topology=topology-netconf/node=calix \
 -d '{
 "node": [
   {
     "node-id": "calix",
     "netconf-node-topology:host": "10.19.0.16",
     "netconf-node-topology:port": 830,
     "netconf-node-topology:tcp-only": false,
     "netconf-node-topology:username": "USERNAME",
     "netconf-node-topology:password": "PASSWORD",
     "netconf-node-topology:session-timers" : {
         "netconf-node-topology:keepalive-delay": 0
     },
     "uniconfig-config:uniconfig-native-enabled": true,
     "uniconfig-config:install-uniconfig-node-enabled": true,
     "uniconfig-config:blacklist": {
         "uniconfig-config:path": [],
         "uniconfig-config:extension": []
     }
   }
 ]
}'

Where:

  • calix: is the name of the device
  • 10.19.0.16: is the ip address of the device
  • 830: is the port number of the device
  • USERNAME: is the username to access the device
  • PASSWORD: is the respective password
  • "uniconfig-config:uniconfig-native-enabled": allows to enable mounting through UniConfig Native
  • "uniconfig-config:install-uniconfig-node-enabled": allows to disable mounting to uniconfig and unified layers
  • "uniconfig-config:path": allows to specify a list of root elements from models present on device to be ignored by UniConfig Native
  • "uniconfig-config:extension": allows to specify a list of module's extensions to be ignored by UniConfig Native

In case of success the return code is 201.

# Check if Calix device is connected

To check if the device is properly connected run:

curl -X GET \
 http://localhost:8181/rests/data/network-topology:network-topology/topology=topology-netconf/node=calix?content=nonconfig

In case of success the return code is 200, and the response body contains something similar to:

{
   "node": [
       {
           "node-id": "calix",
           "netconf-node-topology:unavailable-capabilities": {
               "unavailable-capability": [
                   {
                       "capability": "(urn:ietf:params:xml:ns:netconf:notification:1.0?revision=2008-07-14)notifications",
                       "failure-reason": "missing-source"
                   },

           ...
               ]
           },
           "netconf-node-topology:available-capabilities": {
               "available-capability": [
                   {
                       "capability-origin": "device-advertised",
                       "capability": "http://tail-f.com/ns/netconf/extensions"
                   },
                   {
                       "capability-origin": "device-advertised",
                       "capability": "(http://www.calix.com/ns/ipfix-vrf?revision=2018-10-23)ipfix-vrf"
                   },

           ...
               ]
           },
           "netconf-node-topology:host": "10.19.0.16",
           "netconf-node-topology:connection-status": "connected",
           "netconf-node-topology:port": 830
       }
   ]
}

# Check if Calix device configuration is available in UniConfig

To check if the Calix device configuration has been properly loaded in the UniConfig config datastore, run:

curl -X GET \
 http://localhost:8181/rests/data/network-topology:network-topology/topology=uniconfig/node=calix/frinx-uniconfig-topology:configuration?content=config

In case of success the return code is 200 and the response body contains something similar to:

{
  "frinx-uniconfig-topology:configuration": {
      "exa-base:config": {
          "system": {
              "bng:quarantine": {
                  "default-duration": "86400"
              },
              "aaa": {
                  "user": [
                      {
                          "name": "monitor",
                          "role": [
                              "oper"
                          ],
                          "password": "$1$bo6RaxHE$prYA2waVd/o4atvb1H8l8/"
                      },
                      {
                          "name": "calixsupport",
                          "role": [
                              "calixsupport"
                          ],
                          "password": "$1$2GV.JGzm$wKm7TIsZZgQMlAgvMwnSe/"
                      },
                      {
                          "name": "networkadmin",
                          "role": [
                              "networkadmin"
                          ],
                          "password": "$1$henWME92$LqNxDU3.wWG19Fz.AlL5H0"
                      },
...