OpenWiFi
4.0.0
4.0.0
  • OpenWiFi Release 4.0.0
  • ABOUT
    • About OpenWiFi
    • Supported Hardware
    • Device Partner Information
    • Cloud Partner Information
    • Ordering OpenWiFi APs
    • Example Partner Integrations
    • Contributing
  • OPENWIFI STACK
    • Overview
    • SDK
    • Access Points
      • Local Device Settings
    • Cloud Discovery
      • Discovery without Cloud
    • Code Repositories
    • Artifacts
  • SDK
    • Getting Started
    • Architecture
    • Provisioning for Integrators
      • Data Model Introduction
      • Creating a Configuration
    • User Interface for Admins
      • Provisioning
        • Creating Entities
          • Configurations
            • Metrics Settings Example
        • Creating Venues
          • Configurations
            • WAN
            • VAP - SSID
      • Inventory Association
      • Gateway
      • Devices
        • Commands
        • Statistics
        • Command History
      • Firmware
    • Monitoring
      • ELK Integration
  • RELEASE
    • What's New
    • Features
    • Security Updates
    • Resolved Issues
    • Outstanding Items
    • Testing Results
  • SDK Installation
    • Overview
    • Deploy using Docker Compose
    • Deploy using Helm
  • Device Feature Configuration Examples
    • Basic Device Provisioning
      • Bridge Mode SSID
      • NAT Gateway Mode SSID
      • Multi-VLAN SSID
    • Advanced Device Feature Configuration Examples
      • Zero Touch Provisioning
      • DHCP Relay
      • Services
      • Metrics
      • GRE
      • L2TP
      • VxLAN
      • WDS
      • Mesh
      • QoS
      • Dynamic Air Time Fairness
      • Advanced Captive Portal
        • External Captive Portal
      • Roaming RRM and SON
      • RADIUS Authenticated SSID
        • Dynamic VLANs with RADIUS
        • WISPr Subscriber Bandwidth
        • Dynamic Multi PSK
        • RADIUS MAC-Auth
      • Multi-PSK (MDU Shared Key)
      • Wireguard
      • Dynamic Air-Time Policy
      • Opportunistic Wireless Encryption (OWE)
      • Passpoint®
        • Configuration Introduction
        • Advertising Services
        • Passpoint® Configuration
      • Restricted Unit Support
  • DEVELOPER RESOURCES
    • SDK API
      • OpenAPI Definitions
      • Security Service
      • Gateway Service
      • Firmware Management Service
      • Provisioning Service
      • Analytics Service
      • Radio Resource Management Service
      • Postman Collection
    • SDK KAFKA
      • Connection
      • Device Event Queue
      • Device Telemetry
      • Healthcheck
      • Provisioning Change
      • Service Events
      • State
      • WiFi Scan
Powered by GitBook
On this page
  1. DEVELOPER RESOURCES
  2. SDK API

Radio Resource Management Service

PreviousAnalytics ServiceNextPostman Collection

Get RRM algorithms

get

Returns the RRM algorithm list.

Authorizations
Responses
200
Success
application/json
get
GET /api/v1/algorithms HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Success

[
  {
    "name": "text",
    "description": "text",
    "shortName": "text",
    "parameterFormat": "text",
    "parameterSamples": [
      "text"
    ],
    "helper": "text"
  }
]

Get current RRM model

get

Returns the current RRM data model.

Authorizations
Responses
200
Data model
application/json
Responseobject
get
GET /api/v1/currentModel HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Data model

{}

Get device configuration

get

Returns the device configuration by applying all configuration layers.

Authorizations
Query parameters
serialstringRequired

The device serial number

Responses
200
Device configuration
application/json
400
Bad Request
get
GET /api/v1/getDeviceConfig?serial=text HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "enableRRM": true,
  "schedule": {
    "cron": "text",
    "algorithms": [
      {
        "name": "text"
      }
    ]
  },
  "enableConfig": true,
  "enableWifiScan": true,
  "boundary": 1,
  "location": [
    1
  ],
  "allowedChannels": {
    "ANY_ADDITIONAL_PROPERTY": [
      1
    ]
  },
  "allowedChannelWidths": {
    "ANY_ADDITIONAL_PROPERTY": [
      1
    ]
  },
  "autoChannels": {
    "ANY_ADDITIONAL_PROPERTY": 1
  },
  "userChannels": {
    "ANY_ADDITIONAL_PROPERTY": 1
  },
  "allowedTxPowers": {
    "ANY_ADDITIONAL_PROPERTY": [
      1
    ]
  },
  "autoTxPowers": {
    "ANY_ADDITIONAL_PROPERTY": 1
  },
  "userTxPowers": {
    "ANY_ADDITIONAL_PROPERTY": 1
  }
}

Get device layered configuration

get

Returns the device layered configuration.

Authorizations
Responses
200
Device layered configuration
application/json
get
GET /api/v1/getDeviceLayeredConfig HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Device layered configuration

{
  "apConfig": {
    "ANY_ADDITIONAL_PROPERTY": {
      "enableRRM": true,
      "schedule": {
        "cron": "text",
        "algorithms": [
          {
            "name": "text"
          }
        ]
      },
      "enableConfig": true,
      "enableWifiScan": true,
      "boundary": 1,
      "location": [
        1
      ],
      "allowedChannels": {
        "ANY_ADDITIONAL_PROPERTY": [
          1
        ]
      },
      "allowedChannelWidths": {
        "ANY_ADDITIONAL_PROPERTY": [
          1
        ]
      },
      "autoChannels": {
        "ANY_ADDITIONAL_PROPERTY": 1
      },
      "userChannels": {
        "ANY_ADDITIONAL_PROPERTY": 1
      },
      "allowedTxPowers": {
        "ANY_ADDITIONAL_PROPERTY": [
          1
        ]
      },
      "autoTxPowers": {
        "ANY_ADDITIONAL_PROPERTY": 1
      },
      "userTxPowers": {
        "ANY_ADDITIONAL_PROPERTY": 1
      }
    }
  },
  "zoneConfig": {
    "ANY_ADDITIONAL_PROPERTY": {
      "enableRRM": true,
      "schedule": {
        "cron": "text",
        "algorithms": [
          {
            "name": "text"
          }
        ]
      },
      "enableConfig": true,
      "enableWifiScan": true,
      "boundary": 1,
      "location": [
        1
      ],
      "allowedChannels": {
        "ANY_ADDITIONAL_PROPERTY": [
          1
        ]
      },
      "allowedChannelWidths": {
        "ANY_ADDITIONAL_PROPERTY": [
          1
        ]
      },
      "autoChannels": {
        "ANY_ADDITIONAL_PROPERTY": 1
      },
      "userChannels": {
        "ANY_ADDITIONAL_PROPERTY": 1
      },
      "allowedTxPowers": {
        "ANY_ADDITIONAL_PROPERTY": [
          1
        ]
      },
      "autoTxPowers": {
        "ANY_ADDITIONAL_PROPERTY": 1
      },
      "userTxPowers": {
        "ANY_ADDITIONAL_PROPERTY": 1
      }
    }
  },
  "networkConfig": {
    "enableRRM": true,
    "schedule": {
      "cron": "text",
      "algorithms": [
        {
          "name": "text"
        }
      ]
    },
    "enableConfig": true,
    "enableWifiScan": true,
    "boundary": 1,
    "location": [
      1
    ],
    "allowedChannels": {
      "ANY_ADDITIONAL_PROPERTY": [
        1
      ]
    },
    "allowedChannelWidths": {
      "ANY_ADDITIONAL_PROPERTY": [
        1
      ]
    },
    "autoChannels": {
      "ANY_ADDITIONAL_PROPERTY": 1
    },
    "userChannels": {
      "ANY_ADDITIONAL_PROPERTY": 1
    },
    "allowedTxPowers": {
      "ANY_ADDITIONAL_PROPERTY": [
        1
      ]
    },
    "autoTxPowers": {
      "ANY_ADDITIONAL_PROPERTY": 1
    },
    "userTxPowers": {
      "ANY_ADDITIONAL_PROPERTY": 1
    }
  }
}

Get device topology

get

Returns the device topology.

Authorizations
Responses
200
Device topology
application/json
Responseobject
get
GET /api/v1/getTopology HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Device topology

{}

Optimize channel configuration

get

Run channel optimizer and return the new channel allocation.

Authorizations
Query parameters
modestring · enumRequired

The assignment algorithm to use:

  • random: random channel initialization
  • least_used: least used channel assignment
  • unmanaged_aware: unmanaged AP aware least used channel assignment
Possible values:
zonestringRequired

The RF zone

dry_runbooleanOptional

Do not apply changes

Responses
200
Channel allocation
application/json
400
Bad Request
get
GET /api/v1/optimizeChannel?mode=random&zone=text HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "data": {
    "ANY_ADDITIONAL_PROPERTY": {
      "ANY_ADDITIONAL_PROPERTY": 1
    }
  }
}

Optimize tx power configuration

get

Run tx power optimizer and return the new tx power allocation.

Authorizations
Query parameters
modestring · enumRequired

The assignment algorithm to use:

  • random: random tx power initializer
  • measure_ap_client: measurement-based AP-client TPC algorithm
  • measure_ap_ap: measurement-based AP-AP TPC algorithm
  • location_optimal: location-based optimal TPC algorithm
Possible values:
zonestringRequired

The RF zone

dry_runbooleanOptional

Do not apply changes

Responses
200
Tx power allocation
application/json
400
Bad Request
get
GET /api/v1/optimizeTxPower?mode=random&zone=text HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "data": {
    "ANY_ADDITIONAL_PROPERTY": {
      "ANY_ADDITIONAL_PROPERTY": 1
    }
  }
}

Get RRM provider info

get

Returns the RRM provider info.

Authorizations
Responses
200
Success
application/json
get
GET /api/v1/provider HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Success

{
  "vendor": "text",
  "vendorShortname": "text",
  "version": "text",
  "about": "text"
}

Run RRM algorithm

put

Run a specific RRM algorithm now.

Authorizations
Query parameters
algorithmstringRequired

The algorithm name

argsstringOptional

The algorithm arguments

venuestringRequired

The RF zone

mockbooleanOptional

Do not apply changes

Responses
200
Success
application/json
400
Bad Request
put
PUT /api/v1/runRRM?algorithm=text&venue=text HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "error": "text",
  "channelMap": {
    "ANY_ADDITIONAL_PROPERTY": {
      "ANY_ADDITIONAL_PROPERTY": 1
    }
  },
  "txPowerMap": {
    "ANY_ADDITIONAL_PROPERTY": {
      "ANY_ADDITIONAL_PROPERTY": 1
    }
  }
}

Get system info

get

Returns the system info from the running service.

Authorizations
Query parameters
commandstring · enumRequired

Get a value

Possible values:
Responses
200
Success
application/json
400
Bad Request
get
GET /api/v1/system?command=info HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "version": "text",
  "uptime": 1,
  "start": 1,
  "os": "text",
  "processors": 1,
  "hostname": "text",
  "certificates": [
    {
      "filename": "text",
      "expires": 1
    }
  ]
}
  • GETGet RRM algorithms
  • GETGet current RRM model
  • GETGet device configuration
  • GETGet device layered configuration
  • GETGet device topology
  • POSTModify device AP configuration
  • GETOptimize channel configuration
  • GETOptimize tx power configuration
  • GETGet RRM provider info
  • PUTRun RRM algorithm
  • POSTSet device AP configuration
  • POSTSet device network configuration
  • POSTSet device zone configuration
  • GETGet system info
  • POSTRun system commands
  • POSTSet device topology

Modify device AP configuration

post

Modify the AP layer of the network configuration for the given AP. Any existing fields absent from the request body will be preserved.

Authorizations
Query parameters
serialstringRequired

The device serial number

Body
enableRRMbooleanOptional
enableConfigbooleanOptional
enableWifiScanbooleanOptional
boundaryinteger · int32Optional
locationinteger · int32[]Optional
Responses
200
Success
400
Bad Request
post
POST /api/v1/modifyDeviceApConfig?serial=text HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 481

{
  "enableRRM": true,
  "schedule": {
    "cron": "text",
    "algorithms": [
      {
        "name": "text"
      }
    ]
  },
  "enableConfig": true,
  "enableWifiScan": true,
  "boundary": 1,
  "location": [
    1
  ],
  "allowedChannels": {
    "ANY_ADDITIONAL_PROPERTY": [
      1
    ]
  },
  "allowedChannelWidths": {
    "ANY_ADDITIONAL_PROPERTY": [
      1
    ]
  },
  "autoChannels": {
    "ANY_ADDITIONAL_PROPERTY": 1
  },
  "userChannels": {
    "ANY_ADDITIONAL_PROPERTY": 1
  },
  "allowedTxPowers": {
    "ANY_ADDITIONAL_PROPERTY": [
      1
    ]
  },
  "autoTxPowers": {
    "ANY_ADDITIONAL_PROPERTY": 1
  },
  "userTxPowers": {
    "ANY_ADDITIONAL_PROPERTY": 1
  }
}

No content

Set device AP configuration

post

Set the AP layer of the network configuration for the given AP.

Authorizations
Query parameters
serialstringRequired

The device serial number

Body
enableRRMbooleanOptional
enableConfigbooleanOptional
enableWifiScanbooleanOptional
boundaryinteger · int32Optional
locationinteger · int32[]Optional
Responses
200
Success
400
Bad Request
post
POST /api/v1/setDeviceApConfig?serial=text HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 481

{
  "enableRRM": true,
  "schedule": {
    "cron": "text",
    "algorithms": [
      {
        "name": "text"
      }
    ]
  },
  "enableConfig": true,
  "enableWifiScan": true,
  "boundary": 1,
  "location": [
    1
  ],
  "allowedChannels": {
    "ANY_ADDITIONAL_PROPERTY": [
      1
    ]
  },
  "allowedChannelWidths": {
    "ANY_ADDITIONAL_PROPERTY": [
      1
    ]
  },
  "autoChannels": {
    "ANY_ADDITIONAL_PROPERTY": 1
  },
  "userChannels": {
    "ANY_ADDITIONAL_PROPERTY": 1
  },
  "allowedTxPowers": {
    "ANY_ADDITIONAL_PROPERTY": [
      1
    ]
  },
  "autoTxPowers": {
    "ANY_ADDITIONAL_PROPERTY": 1
  },
  "userTxPowers": {
    "ANY_ADDITIONAL_PROPERTY": 1
  }
}

No content

Set device network configuration

post

Set the network layer of the device configuration.

Authorizations
Body
enableRRMbooleanOptional
enableConfigbooleanOptional
enableWifiScanbooleanOptional
boundaryinteger · int32Optional
locationinteger · int32[]Optional
Responses
200
Success
400
Bad Request
post
POST /api/v1/setDeviceNetworkConfig HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 481

{
  "enableRRM": true,
  "schedule": {
    "cron": "text",
    "algorithms": [
      {
        "name": "text"
      }
    ]
  },
  "enableConfig": true,
  "enableWifiScan": true,
  "boundary": 1,
  "location": [
    1
  ],
  "allowedChannels": {
    "ANY_ADDITIONAL_PROPERTY": [
      1
    ]
  },
  "allowedChannelWidths": {
    "ANY_ADDITIONAL_PROPERTY": [
      1
    ]
  },
  "autoChannels": {
    "ANY_ADDITIONAL_PROPERTY": 1
  },
  "userChannels": {
    "ANY_ADDITIONAL_PROPERTY": 1
  },
  "allowedTxPowers": {
    "ANY_ADDITIONAL_PROPERTY": [
      1
    ]
  },
  "autoTxPowers": {
    "ANY_ADDITIONAL_PROPERTY": 1
  },
  "userTxPowers": {
    "ANY_ADDITIONAL_PROPERTY": 1
  }
}

No content

Set device zone configuration

post

Set the zone layer of the network configuration for the given zone.

Authorizations
Query parameters
zonestringRequired

The RF zone

Body
enableRRMbooleanOptional
enableConfigbooleanOptional
enableWifiScanbooleanOptional
boundaryinteger · int32Optional
locationinteger · int32[]Optional
Responses
200
Success
400
Bad Request
post
POST /api/v1/setDeviceZoneConfig?zone=text HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 481

{
  "enableRRM": true,
  "schedule": {
    "cron": "text",
    "algorithms": [
      {
        "name": "text"
      }
    ]
  },
  "enableConfig": true,
  "enableWifiScan": true,
  "boundary": 1,
  "location": [
    1
  ],
  "allowedChannels": {
    "ANY_ADDITIONAL_PROPERTY": [
      1
    ]
  },
  "allowedChannelWidths": {
    "ANY_ADDITIONAL_PROPERTY": [
      1
    ]
  },
  "autoChannels": {
    "ANY_ADDITIONAL_PROPERTY": 1
  },
  "userChannels": {
    "ANY_ADDITIONAL_PROPERTY": 1
  },
  "allowedTxPowers": {
    "ANY_ADDITIONAL_PROPERTY": [
      1
    ]
  },
  "autoTxPowers": {
    "ANY_ADDITIONAL_PROPERTY": 1
  },
  "userTxPowers": {
    "ANY_ADDITIONAL_PROPERTY": 1
  }
}

No content

Run system commands

post

Perform some system-wide commands.

Authorizations
Body
objectOptional
Responses
200
Successful command execution
application/json
Responseobject
400
Bad Request
post
POST /api/v1/system HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2

{}
{}

Set device topology

post

Set the device topology.

Authorizations
Body
objectOptional
Responses
200
Success
400
Bad Request
post
POST /api/v1/setTopology HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2

{}

No content