0

I'm trying to get statistics using the following RPC call and not via the default statistics-manager.

POST / restconf / operations / opendaylight - flow - statistics: get - all - flows - statistics - from - all - flow - tables {
    "input": {
        "node": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id=\"openflow:1000\"]"
    }
}

However, the response of this request is just transaction-id. While I can see the OpenFlow Flow Stat Request and Flow Stat Reply messages are exchanged between the controller and the switch, the operational datastore seems not to be updated as a result of calling the above RPC. I check the operational datastore using:

GET /restconf/operational/opendaylight-inventory:nodes/node/openflow:1000/table/0

My question is:

  • How can I get the flow statistics sent to the controller by the switch as a result of the above RPC (get-all-flows-statistics-from-all-flow-tables)? And why is the operational datastore is not updated?

Thanks! Michael.

Sylhare
  • 5,907
  • 8
  • 64
  • 80
Michael
  • 357
  • 2
  • 12

1 Answers1

1

Using Boron, what you're trying to use is deprecated, hence you should use the following:

  1. Install odl-openflowplugin-flow-services
  2. Connect your switch
  3. Send the following request:
    POST /restconf/operations/opendaylight-direct-statistics:get-node-connector-statistics
    Host: localhost:8181
    Content-Type: application/json
    Authorization: Basic YWRtaW46YWRtaW4=

    {
        "input": 
        { 
            "node" : "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id=\"openflow:187811733353539\"]" ,
            "store-stats" : false
        } 
    }
  1. Set store-stats to true if you want to keep them in the datastore.

You can also get the stats only for a specified port, but while trying, it appears not to be working well Add this to the above payload:

    "node-connector-id" : "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id=\"openflow:187811733353539\"]/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:187811733353539:LOCAL']",

Instead of LOCAL, specify the port you want.

Hope this helps, Alexis

Sylhare
  • 5,907
  • 8
  • 64
  • 80