Skip to content

REST API List of OFMStateManager

jsshin edited this page Oct 27, 2014 · 4 revisions

OFMStateManager API list

retrieve all switches

API: /wm/core/controller/switches/json

Result:

[
  {
    dpid: "00:00:00:00:00:00:00:02",
    inetAddress: "/129.254.72.127:36176",
    connectedSince: 1395125577218
  },
  {
    dpid: "00:00:00:00:00:00:00:01",
    inetAddress: "/129.254.72.127:36175",
    connectedSince: 1395125577159
  },
  {
    dpid: "00:00:00:00:00:00:00:15",
    inetAddress: "/129.254.72.127:36179",
    connectedSince: 1395125577463
  },
  {
    dpid: "00:00:00:00:00:00:00:03",
    inetAddress: "/129.254.72.127:36177",
    connectedSince: 1395125577280
  },
  {
    dpid: "00:00:00:00:00:00:00:0b",
    inetAddress: "/129.254.72.127:36178",
    connectedSince: 1395125577369
  }
]

Switch aggregate flow statistics

API: /wm/core/switch/{switchid}/aggregate/json

Result:

{
  00:00:00:00:00:00:00:15: [
    {
      xid: 12689,
      flags: [ ],
      packetCount: 693,
      byteCount: 67914,
      flowCount: 2,
      type: "STATS_REPLY",
      version: "OF_10",
      statsType: "AGGREGATE"
    }
  ]
}

Retrieve Switch Description

API: /wm/core/switch/{switchid}/desc/json

Result:

{
  00:00:00:00:00:00:00:15: [
    {
      datapathDescription: "None",
      hardwareDescription: "Open vSwitch",
      manufacturerDescription: "Nicira Networks, Inc.",
      serialNumber: "None",
      softwareDescription: "1.4.0+build0"
    }
  ]
}

Retrieve switch port list

API: /wm/core/switch/{switchid}/port/json

Result:

{
  00:00:00:00:00:00:00:15: [
    {
      portNumber: 3,
      transmitBytes: 80719,
      receiveBytes: 95675,
      transmitPackets: 1025,
      receivePackets: 1164,
      transmitDropped: 0,
      receiveDropped: 2,
      transmitErrors: 0,
      receiveErrors: 0,
      receiveFrameErrors: 0,
      receiveOverErrors: 0,
      receiveCrcErros: 0,
      collisions: 0
    },
    ...
    {
      portNumber: 2,
      transmitBytes: 188239,
      receiveBytes: 185020,
      transmitPackets: 2202,
      receivePackets: 2127,
      transmitDropped: 0,
      receiveDropped: 2,
      transmitErrors: 0,
      receiveErrors: 0,
      receiveFrameErrors: 0,
      receiveOverErrors: 0,
      receiveCrcErros: 0,
      collisions: 0
    }
  ]
}

Retrieve Switch Features

API: /wm/core/switch/{switchid}/features/json

NOTE: all is possible for switchid. In that case, a list that contains all features of all switches is returned.

Result:

{
  00:00:00:00:00:00:00:15: {
    datapathId: "00:00:00:00:00:00:00:15",
    actions: "[OUTPUT, SET_VLAN_VID, SET_VLAN_PCP, STRIP_VLAN, SET_DL_SRC, SET_DL_DST, SET_NW_SRC, SET_NW_DST,     
               SET_NW_TOS, SET_TP_SRC, SET_TP_DST, ENQUEUE]",
    buffers: 256,
    capabilities: "[FLOW_STATS, TABLE_STATS, PORT_STATS, QUEUE_STATS, ARP_MATCH_IP]",
    tables: 255,
    type: "FEATURES_REPLY",
    version: 0,
    xid: 15374,
    ports: [
      {
        portNumber: 3,
        hardwareAddress: "a6:07:e7:4d:3f:06",
        name: "hp2-eth3",
        config: "[]",
        state: "[STP_LISTEN]",
        currentFeatures: "[PF_10GB_FD, PF_COPPER]",
        advertisedFeatures: "[]",
        supportedFeatures: "[]",
        peerFeatures: "[]"
      },
      ...
      {
        portNumber: -2,
        hardwareAddress: "5a:cf:af:ff:3d:40",
        name: "hp2",
        config: "[]",
        state: "[PORT_DOWN]",
        currentFeatures: "[LINK_DOWN, STP_LISTEN]",
        advertisedFeatures: "[]",
        supportedFeatures: "[]",
        peerFeatures: "[]"
      }
    ]
  }
}

Flow record list in a specific switch

API: /wm/core/switch/{switchid}/flow/json

NOTE: This basically returns all flows of input switch. If you want to get matched flows only, use a curl data option.

Example: curl -d '{"eth_type":"806","arp_spa":"10.0.0.1","srp_tpa","10.0.0.2"}' http://{controller}:8080/wm/core/switch/{switchid}/flow/json

Result:

{
  00:00:00:00:00:00:00:15: [
    {
      tableId: 0,
      match: {
        in_port: "2",
        eth_src: "16:ab:82:62:a4:71",
        eth_dst: "82:79:61:6f:5c:ad",
        eth_type: "800",
        ip_proto: "1",
        ipv4_src: "10.0.0.1",
        ipv4_dst: "10.0.0.2",
        ip_dscp: "0"
      },
      durationSeconds: 1016,
      durationNanoSeconds: 853000000,
      priority: 10,
      idleTimeout: 5,
      hardTimeout: 0,
      cookie: 9007199254740992,
      packetCount: 1017,
      byteCount: 99666,
      actions: [
        {
          port: 1,
          maxLen: 65535,
          type: "OUTPUT",
          version: "OF_10"
        }
      ]
    },
    {
      tableId: 0,
      match: {
        in_port: "1",
        eth_src: "82:79:61:6f:5c:ad",
        eth_dst: "16:ab:82:62:a4:71",
        eth_type: "800",
        ip_proto: "1",
        ipv4_src: "10.0.0.2",
        ipv4_dst: "10.0.0.1",
        ip_dscp: "0"
      },
      durationSeconds: 1016,
      durationNanoSeconds: 852000000,
      priority: 10,
      idleTimeout: 5,
      hardTimeout: 0,
      cookie: 9007199254740992,
      packetCount: 1016,
      byteCount: 99568,
      actions: [
        {
          port: 2,
          maxLen: 65535,
          type: "OUTPUT",
          version: "OF_10"
        }
      ]
    }
  ]
}

Controller system health-related info

API: /wm/core/health/json

Result:

{
  host: "localhost",
  ofport: 6633,
  uptime: "System is up for 0 days 0 hours 22 minutes 21 seconds",
  free: "195M",
  total: "244M",
  healthy: true,
  modules: [
    "etri.sdn.controller.module.devicemanager.OFMDefaultEntityClassifier",
    "etri.sdn.controller.module.firewall.OFMFirewall",
    "etri.sdn.controller.module.storagemanager.OFMStorageManager",
    "etri.sdn.controller.module.ui.OFMUserInterface",
    "etri.sdn.controller.module.linkdiscovery.OFMLinkDiscovery",
    "etri.sdn.controller.module.forwarding.Forwarding",
    "etri.sdn.controller.module.netfailover.OFMNetFailover",
    "etri.sdn.controller.module.statemanager.OFMStateManager",
    "etri.sdn.controller.module.devicemanager.OFMDeviceManager",
    "etri.sdn.controller.module.topologymanager.OFMTopologyManager"
  ],
  moduleText: "etri.sdn.controller.module.devicemanager.OFMDefaultEntityClassifier,
etri.sdn.controller.module.firewall.OFMFirewall, 
etri.sdn.controller.module.storagemanager.OFMStorageManager,
etri.sdn.controller.module.ui.OFMUserInterface, 
etri.sdn.controller.module.linkdiscovery.OFMLinkDiscovery,
etri.sdn.controller.module.forwarding.Forwarding, 
etri.sdn.controller.module.netfailover.OFMNetFailover, 
etri.sdn.controller.module.statemanager.OFMStateManager, 
etri.sdn.controller.module.devicemanager.OFMDeviceManager, etri.sdn.controller.module.topologymanager.OFMTopologyManager"
}

Retrieve loaded module info

API: /wm/core/module/loaded/json

Result:

{
  etri.sdn.controller.module.devicemanager.OFMDefaultEntityClassifier: {
    loaded: true,
    provides: {
      etri.sdn.controller.module.devicemanager.IEntityClassifierService:       
         "etri.sdn.controller.module.devicemanager.OFMDefaultEntityClassifier"
    },
    depends: { }
  },
  etri.sdn.controller.module.firewall.OFMFirewall: {
    loaded: true,
    provides: {
      etri.sdn.controller.module.firewall.IFirewallService: "etri.sdn.controller.module.firewall.OFMFirewall"
    },
    depends: { }
  },
...

IRIS memory usage

API: /wm/core/memory/json

Result:

{
  total: "244M",
  free: "179M"
}

Clone this wiki locally