Info |
---|
This page is for Floodlight v1.0 and up. If you are using Floodlight v0.9 or earlier or are using a copy of the master branch prior to December 30, 2014, please consider upgrading to Floodlight v1.1. If now isn't the time to upgrade, no worries, the pre-1.0 documentation can be found here. |
...
URI | Method | Description | Arguments | Controller Version | |
---|---|---|---|---|---|
Controller APIs | /wm/core/controller/switches/json | GET | List of all switch DPIDs connected to the controller | none | all |
/wm/core/controller/summary/json | GET | Controller summary (# of Switches, # of Links, etc.) | none | all | |
/wm/core/module/all/json | GET | Retrieve all registered (but not loaded) modules. | none | all | |
/wm/core/module/loaded/json | GET | Retrieve all modules actively loaded by the module loader. | none | all | |
/wm/core/counter/<moduleName>/<counterTitle>/json | GET | List of counters per module, including switch counters. | moduleName: The name of the specific module for which to fetch counters. "OFSwitchManager" should be used for switch counters. | all | |
/wm/core/memory/json | GET | Current controller memory usage | none | all | |
/wm/core/health/json | GET | Status/Health of REST API | none | all | |
/wm/core/version/json | GET | Controller version and name | none | all | |
/wm/core/system/uptime/json | GET | Controller uptime | none | all | |
/wm/core/storage/tables/json | GET | Tables present in Storage. | none | all | |
Role (HA) APIs | /wm/core/role/json | GET | Retrieve the current high availability role of the controller. | None | v1.0 and up |
POST | Set the high availability role of the controller. | {"role":"<new-role>"} new-role: "ACTIVE" or "STANDBY" | v1.0 and up | ||
Role (Switch) APIs | /wm/core/switch/all/role/json | GET | Retrieve the roles of all the presently connected switches. | v1.1 and up | |
POST | Set the role of all presently connected switches. | {"role":"<new-role>"} new-role: "MASTER", "SLAVE", or "EQUAL" | v1.2 and up | ||
/wm/core/switch/<switchId>/role/json | GET | Retrieve the role of a particular connected switch. | none | v1.2 and up | |
POST | Set the role of a particular connected switch. | {"role":"<role>"} role: "MASTER", "SLAVE", or "EQUAL" | v1.2 and up | ||
OpenFlow Stats / Multipart APIs | /wm/core/switch/all/<statType>/json | GET | Retrieve aggregate stats across all switches. | statType: aggregate, desc, flow, group, group-desc, group-features, meter, meter-config, meter-features, port, port-desc, queue, table, features | all |
/wm/core/switch/<switchId>/<statType>/json | GET | Retrieve per switch stats. | switchId: Valid Switch DPID (XX:XX:XX:XX:XX:XX:XX:XX) | all | |
Statistics APIs | /wm/statistics/config/enable/json | POST PUT | Enable statistics collection | Send empty string | v1.2 and up |
/wm/statistics/config/disable/json | POST PUT | Disable statistics collection | Send empty string | v1.2 and up | |
/wm/statistics/bandwidth/<switchId>/<portId>/json | GET | Fetch RX/TX bandwidth consumption | switchId: Valid Switch DPID as colon-delimited hex string or integer. Use "all" for all switches. portId: Valid switch port number | v1.2 and up | |
Topology and Routing APIs
| /wm/topology/switchclusters/json | GET | List of all switch clusters connected to the controller. | none | v0.90 - v1.2 |
/wm/topology/external-links/json | GET | Show "external" links, i.e., multi-hop links discovered by BDDP instead of LLDP packets | none | all | |
/wm/topology/links/json | GET | Show DIRECT and TUNNEL links discovered based on LLDP packets | none | all | |
/wm/topology/route/<src-dpid>/<src-port>/<dst-dpid>/<dst-port>/json | GET | Get a route defined by switch DPIDs and switch ports from the source switch and port to the destination switch and port | src-dpid: Valid Switch DPID (XX:XX:XX:XX:XX:XX:XX:XX) | v0.90 - v1.2 | |
/wm/routing/path/<src-dpid>/<src-port>/<dst-dpid>/<dst-port>/json | GET | Get a path defined by switch DPIDs and the switch ports from the source switch and port to the destination switch and port | src-dpid: Valid Switch DPID (XX:XX:XX:XX:XX:XX:XX:XX) src-port: Valid Switch Port Number dst-dpid: Valid Switch DPID (XX:XX:XX:XX:XX:XX:XX:XX) dst-port: Valid Switch Port Number | master and up | |
/wm/routing/paths/<src-dpid>/<dst-dpid>/<num-paths>/json | GET | Get an ordered list of paths from the shortest to the longest path | src-dpid: Valid Switch DPID (XX:XX:XX:XX:XX:XX:XX:XX) num-paths: Max quantity of paths to locate | master and up | |
/wm/routing/paths/fast/<src-dpid>/<dst-dpid>/<num-paths>/json | GET | Get an ordered list of paths from the shortest to the longest path | src-dpid: Valid Switch DPID (XX:XX:XX:XX:XX:XX:XX:XX) num-paths: Max quantity of paths to locate | master and up | |
/wm/routing/paths/slow/<src-dpid>/<dst-dpid>/<num-paths>/json | GET | Get an ordered list of paths from the shortest to the longest path. Recompute paths if number requested is not cached | src-dpid: Valid Switch DPID (XX:XX:XX:XX:XX:XX:XX:XX) num-paths: Max quantity of paths to locate | master and up | |
/wm/routing/paths/force-recompute/json | POST/PUT | Recompute and cache paths using configured metric and max-fast-paths | empty string, '' | master and up | |
/wm/routing/paths/max-fast-paths/json | GET/POST/PUT | Get or set the max paths to attempt to cache upon path computation | e.g. '{ "max_fast_paths" : "3" }' | master and up | |
/wm/routing/metric/json | GET/POST/PUT | Get or set the metric to use when determining link cost | e.g. '{ "metric" : <metric> }', where <metric> is: "hopcount" "hopcount_avoid_tunnels" "latency" "utilization" "link_speed" | master and up | |
Device APIs | /wm/device/ | GET | List of all devices tracked by the controller. This includes MACs, IPs, and attachment points | Passed as GET parameters: mac (colon-separated hex-encoded), ipv4 (dotted decimal), vlan, dpid attachment point DPID (colon-separated hex-encoded) and port the attachment point port. | all |
Static Entry Pusher APIs | /wm/staticflowpusher/json | POST/DELETE | Add/Delete static flow | HTTP POST data (add flow), HTTP DELETE (for deletion) | all |
/wm/staticflowpusher/list/<switch>/json | GET | List static flows for a switch or all switches | switch: Valid Switch DPID (XX:XX:XX:XX:XX:XX:XX:XX) or "all" | all | |
/wm/staticflowpusher/clear/<switch>/json | GET | Clear static flows for a switch or all switches | switch: Valid Switch DPID (XX:XX:XX:XX:XX:XX:XX:XX) or "all" | all | |
More information available on How to Use Static Flow Pusher API | |||||
Virtual Network Filter APIs | /networkService/v1.1/tenants/<tenant>/networks/<network> | PUT/POST/DELETE | Creates a new virtual network. Name and ID are required, gateway is optional. | URI argument: tenant: Currently ignored. network: ID (not name) of the network | v0.91 and up |
/networkService/v1.1/tenants/<tenant>/networks/<network>/ports/<port>/attachment | PUT/DELETE | Attaches a host to a virtual network. | URI argument: tenant: Currently ignored. network: ID (not name) of the network. port: Logical port name | v0.91 and up | |
/networkService/v1.1/tenants/<tenant>/networks | GET | Shows all networks and their gateway, ID, and hosts mac in json format. | URI argument: tenant: Currently ignored. | v0.91 and up | |
More information available on Virtual Network Filter REST API | |||||
Firewall APIs | /wm/firewall/module/status/json | GET | Query the status of the firewall. | all | |
/wm/firewall/module/enable/json | PUT | Enable the firewall. | Send empty string | all | |
/wm/firewall/module/disable/json | PUT | Disable the firewall. | Send empty string | all | |
/wm/firewall/module/subnet-mask/json | GET | Get the firewall's configured subnet mask. | None | all | |
POST | Set the subnet mask of the firewall. | "subnet-mask":"X.X.X.X", where X.X.X.X is a valid IPv4 subnet mask. | all | ||
/wm/firewall/rules/json | GET/POST/DELETE | GET: None | List all existing rules in json format | all | |
More information available on Firewall REST API | |||||
Access Control List APIs | /wm/acl/rules/json | POST | Add a rule '{"<key>":"<value>", "<key>":"<value>", ...}' | <key>:value> pairs can be any of: "nw-proto" : "any valid network protocol number" "src-ip" : "ip/mask" "dst-ip" : "ip/mask" "tp-dst" : "any valid transport port number" "action" : "ALLOW | DENY" | v1.1 and up |
/wm/acl/rules/json | DELETE | Delete a rule. {"ruleid":"<rule>"} | rule: The ID of the rule as returned when it was added | v1.1 and up | |
/wm/acl/rules/json | GET | List all rules | none | v1.1 and up | |
/wm/acl/clear/json | GET | Delete all rules | none | v1.1 and up | |
More information available on ACL (Access Control List) REST API | |||||
Controller Performance APIs | /wm/performance/json | GET | Get controller performance monitoring status | none | v0.9 and up |
/wm/performance/enable/json | GETPOST | Enable controller performance monitoring | none | v0.9 and up | |
/wm/performance/disable/json | GETPOST | Disable controller performance monitoring | none | v0.9 and up | |
/wm/performance/reset/json | GETPOST | Reset controller performance monitoring | none | v0.9 and up | |
/wm/performance/data/json | GET | Retrieve the average packet-in processing time of the controller | none | v0.9 and up |
...