Ask Your Question
0

Flow statistics using RCP call

asked 2016-09-19 11:58:59 -0700

michaelbor gravatar image

updated 2016-09-19 11:59:49 -0700

Hi,

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.

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted
0

answered 2016-10-21 08:44:04 -0700

Hello,

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
        } 
    }
    
  4. 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

edit flag offensive delete publish link more

Comments

Thank you very much for the suggestion. Unfortunately we are using Lithium release since in Beryllium, there is a "role request" sent after "feature request". Our switches do not support "role request", so connection to controller terminates. Is there is a way to skip "role request" in Boron?

michaelbor ( 2016-10-24 05:38:18 -0700 )edit
Login/Signup to Answer

Question Tools

Follow
1 follower

Stats

Asked: 2016-09-19 11:58:59 -0700

Seen: 140 times

Last updated: Oct 21 '16