Documentation (Beta)
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Gateway Configuration

Configuration API

This is the configuration you want a Gateway to apply. It can be specified on a per-gateway or gateway-group level. Per-gateway configuration overrides gateway-group level configuration.

Available REST methods:

  • PUT - to set the desired configuration (ask GWs to apply this configuration)
  • GET - receive the latest desired configuration set (the configuration GWs were asked to apply last time)
  • DELETE - remove the desired configuration.

api/configuration/desired/ENTITY_TYPE/ENTITY_UUID

{
    "content" : {}
}

  • ENTITY_TYPE - GATEWAY or GATEWAY_GROUP
  • ENTITY_UUID - UUID of Gateway or GatewayGroup
  • content configuration to apply. Supported fields are listed below. Not all of the fields should be sent each time (only the fields of interest).

Supported content field structure:

Network Server

{
  "version": 1.0,

  "config": ["GW-Group432"],

  "networkServer":
  {
    "comments": "Network server setup",
    "loraNsOn": true,
    "serverType": "Tektelic",
    "useUDP": false,
    "loraNsSetup":
    [
      {
        "serverURL": "",
        "enableCUPS": false,
        "serverPort": 1770,
        "useTLS": false,
        "userName": "",
        "password": "",
        "serverBstnCertificate": "",
        "gatewayBstnCertificate": "",
        "gatewayBstnPrivateKey": "",
        "serverLnsCertificate": "",
        "gatewayLnsCertificate": "",
        "gatewayLnsPrivateKey": ""
      }
    ]
  }

GeoLocation, GeoServer Setup

  "geoLocation":
  {
    "comments": "Geolocation server setup",
    "geoEnable": true,
    "standaloneGeo": true,

    "geoServerSetup":
    [
      {
        "geoServerURL": "URL for the geolocation server",
        "geoServerPort": "<current geolocation server port number>",
        "useTLS": false,
        "userName": "geolocation server user name",
        "password": "geolocaiton server password",
        "serverCertificate": "certificate text",
        "gatewayCertificate": "certificate text",
        "gatewayPrivateKey": "Gateway private key"
      }
    ]
  }

Upgrade Server

  "upgradeServer":
  {
    "comments": "Firmware upgrade server configuration",
    "ipkFeedURL":
    [
      {
        "name": "bsp",
        "url": "https://example.com/bsp"
      },
      {
        "name": "fpga",
        "url": "https://example.com/gpio-fpga"
      }
    ]
  },

SNMP Agent

  "snmpAgent":
  {
    "v3Switch": true,
    "v3Password": "1234",
    "confirmV3Password": "1234",
    "authAlgorithm": "SHA256|SHA384|SHA512",
    "encryptAlgorithm": "AES|AES192|AES256",
    "externalV2Disable": false    
  }

Network Configuration

  "networkConfiguration":
  {
    "interfacePreference": ["Ethernet", "Cellular", "Optical"],

    "eth":
    {
      "addressType": "DHCP",
      "ipAddress": "192.168.1.100",
      "defaultGateway": "192.168.1.1",
      "networkMask": "255.255.255.0",
      "dnsServer1": "1.1.1.1",
      "dnsServer2": ""
    },
    "connectivityCheck":
    {
      "pingAddress": "8.8.8.8",
      "pingFrequencyPreferred": 10,
      "pingFrequencyFallback": 30,
      "maxPingFailCountPreferred": 6,
      "maxPingFailCountFallback": 2,
      "noBackhaulTimeout": 300,
    },
    "cellular":
    {
      "simPin":
      [
        {
          "simSlot": 0,
          "currentSimPin": "",
          "newSimPin": ""
        }
      ],
      "pdpProfile":
      [
        {
          "pdpProfileName": "pdp profile name", 
          "apnName": "APN name", 
          "connectionType": "'IP', 'PPP', 'IPV6', 'IPV4V6'",
          "userName": "APN user name", (max: 31 characters)
          "password": "APN password", (max: 31 characters)
          "authType": "'NONE', 'PAP', 'CHAP', 'PAPCHAP'"
          "setActive": "True", "False"
        }
      ]      
    }
  }



GW / GW_GROUP configuration overriding

GW configuration overrides GW_GROUP configuration on a field-by-field basis. Including nested fields.

Override example

GW:

{
"a": "yes",
"b": "presentInGwOnly",
"nested":{
    "value": 100
  }
}

GW_GROUP

{
"a": "no",
"c": "presentInGwGroupOnly",
"nested":{
    "value": 13
  }
}

Final

{
"a": "yes",
"b": "presentInGwOnly",
"c": "presentInGwGroupOnly",
"nested":{
    "value": 100
  }
}



Reported Configuration API

GET api/configuration/reported/GATEWAY/GATEWAY_UUID

Returns the latest reported configuration by the gateway.

{
    "content" : {},
    "timestamp": 1631010810123
}

content provides information about the currently applied configuration, and also any errors experienced during the last configuration request. Compared with the Desired payload, it has inner value and status nodes that reflect the value applied and the status of the operation.

Example of reported content (partial)

{
  "content": {
  ...
    "upgradeServer": {
      "ipkFeedURL": {
        "value": [
          {
            "name": "bsp",
            "url": "http://10.7.7.122/opk/Kona_Macro/BSP-5.1.3/bsp/"
          },
          {
            "name": "utils",
            "url": "http://10.7.7.122/opk/Kona_Macro/BSP-5.1.3/utils/"
          }
        ]
      }
    }
  ...
  },
  "timestamp": 1655249383674
}