<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic How do I use the REST API meter to measure throughput? in Software Defined Networking</title>
    <link>https://community.hpe.com/t5/software-defined-networking/how-do-i-use-the-rest-api-meter-to-measure-throughput/m-p/6428804#M217</link>
    <description>&lt;P&gt;This is probably a very newbie question, but how do use a meter to measure packet or byte rate?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can create a very basic flow, e.g.&lt;/P&gt;&lt;P&gt;curl --header "X-Auth-Token:XXXXXXXXXXXXX" -H "Content-Type:application/json" -ksS --url&lt;BR /&gt;"https://localhost:8443/sdn/v2.0/of/datapaths/00:02:c8:cb:b8:3e:fe:40/flows" -d "{\"flow\": {\"priority\": 30000,&lt;BR /&gt;\"table_id\":100,\"idle_timeout\": 60000,\"match\": [{\"in_port\": 25}],\"instructions\": [{\"apply_actions\":&lt;BR /&gt;[{\"output\": 11}]}]}}" --request POST&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can create a meter, e.g.&lt;/P&gt;&lt;P&gt;curl --header "X-Auth-Token:XXXXXXXXXXXXX" -H "Content-Type:application/json" -ksS --url&lt;BR /&gt;"https://localhost:8443/sdn/v2.0/of/datapaths/00:02:c8:cb:b8:3e:fe:40/meters" -d "{\"version\": \"1.3.0\",\"meter\":&lt;BR /&gt;{\"id\": 1,\"command\": \"add\",\"flags\": [\"kbps\",\"burst\",\"stats\"],\"bands\": [{\"burst_size\": 1000,\"rate\":&lt;BR /&gt;1500,\"mtype\": \"drop\"},{\"burst_size\": 1000,\"rate\": 100,\"mtype\": \"dscp_remark\",\"prec_level\": 1}]}}" --request&lt;BR /&gt;POST&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Do I associate the meter with the flow somehow?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How do I use and read back the meter values?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any help greatly appreciated.&lt;/P&gt;&lt;P&gt;Dave.&lt;/P&gt;&lt;P&gt;curl --header "X-Auth-Token:XXXXXXXXXXXXX" -H "Content-Type:application/json" -ksS --url&lt;BR /&gt;&lt;BR /&gt;"https://localhost:8443/sdn/v2.0/of/datapaths/00:02:c8:cb:b8:3e:fe:40/flows" -d "{\"flow\": {\"priority\": 30000,&lt;BR /&gt;&lt;BR /&gt;\"table_id\":100,\"idle_timeout\": 60000,\"match\": [{\"in_port\": 25}],\"instructions\": [{\"apply_actions\":&lt;BR /&gt;&lt;BR /&gt;[{\"output\": 11}]}]}}" --request POST&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;curl --header "X-Auth-Token:XXXXXXXXXXXXX" -H "Content-Type:application/json" -ksS --url&lt;BR /&gt;&lt;BR /&gt;"https://localhost:8443/sdn/v2.0/of/datapaths/00:02:c8:cb:b8:3e:fe:40/meters" -d "{\"version\": \"1.3.0\",\"meter\":&lt;BR /&gt;&lt;BR /&gt;{\"id\": 1,\"command\": \"add\",\"flags\": [\"kbps\",\"burst\",\"stats\"],\"bands\": [{\"burst_size\": 1000,\"rate\":&lt;BR /&gt;&lt;BR /&gt;1500,\"mtype\": \"drop\"},{\"burst_size\": 1000,\"rate\": 100,\"mtype\": \"dscp_remark\",\"prec_level\": 1}]}}" --request&lt;BR /&gt;&lt;BR /&gt;POST&lt;/P&gt;</description>
    <pubDate>Fri, 28 Mar 2014 12:32:12 GMT</pubDate>
    <dc:creator>Dave-B</dc:creator>
    <dc:date>2014-03-28T12:32:12Z</dc:date>
    <item>
      <title>How do I use the REST API meter to measure throughput?</title>
      <link>https://community.hpe.com/t5/software-defined-networking/how-do-i-use-the-rest-api-meter-to-measure-throughput/m-p/6428804#M217</link>
      <description>&lt;P&gt;This is probably a very newbie question, but how do use a meter to measure packet or byte rate?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can create a very basic flow, e.g.&lt;/P&gt;&lt;P&gt;curl --header "X-Auth-Token:XXXXXXXXXXXXX" -H "Content-Type:application/json" -ksS --url&lt;BR /&gt;"https://localhost:8443/sdn/v2.0/of/datapaths/00:02:c8:cb:b8:3e:fe:40/flows" -d "{\"flow\": {\"priority\": 30000,&lt;BR /&gt;\"table_id\":100,\"idle_timeout\": 60000,\"match\": [{\"in_port\": 25}],\"instructions\": [{\"apply_actions\":&lt;BR /&gt;[{\"output\": 11}]}]}}" --request POST&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can create a meter, e.g.&lt;/P&gt;&lt;P&gt;curl --header "X-Auth-Token:XXXXXXXXXXXXX" -H "Content-Type:application/json" -ksS --url&lt;BR /&gt;"https://localhost:8443/sdn/v2.0/of/datapaths/00:02:c8:cb:b8:3e:fe:40/meters" -d "{\"version\": \"1.3.0\",\"meter\":&lt;BR /&gt;{\"id\": 1,\"command\": \"add\",\"flags\": [\"kbps\",\"burst\",\"stats\"],\"bands\": [{\"burst_size\": 1000,\"rate\":&lt;BR /&gt;1500,\"mtype\": \"drop\"},{\"burst_size\": 1000,\"rate\": 100,\"mtype\": \"dscp_remark\",\"prec_level\": 1}]}}" --request&lt;BR /&gt;POST&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Do I associate the meter with the flow somehow?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How do I use and read back the meter values?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any help greatly appreciated.&lt;/P&gt;&lt;P&gt;Dave.&lt;/P&gt;&lt;P&gt;curl --header "X-Auth-Token:XXXXXXXXXXXXX" -H "Content-Type:application/json" -ksS --url&lt;BR /&gt;&lt;BR /&gt;"https://localhost:8443/sdn/v2.0/of/datapaths/00:02:c8:cb:b8:3e:fe:40/flows" -d "{\"flow\": {\"priority\": 30000,&lt;BR /&gt;&lt;BR /&gt;\"table_id\":100,\"idle_timeout\": 60000,\"match\": [{\"in_port\": 25}],\"instructions\": [{\"apply_actions\":&lt;BR /&gt;&lt;BR /&gt;[{\"output\": 11}]}]}}" --request POST&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;curl --header "X-Auth-Token:XXXXXXXXXXXXX" -H "Content-Type:application/json" -ksS --url&lt;BR /&gt;&lt;BR /&gt;"https://localhost:8443/sdn/v2.0/of/datapaths/00:02:c8:cb:b8:3e:fe:40/meters" -d "{\"version\": \"1.3.0\",\"meter\":&lt;BR /&gt;&lt;BR /&gt;{\"id\": 1,\"command\": \"add\",\"flags\": [\"kbps\",\"burst\",\"stats\"],\"bands\": [{\"burst_size\": 1000,\"rate\":&lt;BR /&gt;&lt;BR /&gt;1500,\"mtype\": \"drop\"},{\"burst_size\": 1000,\"rate\": 100,\"mtype\": \"dscp_remark\",\"prec_level\": 1}]}}" --request&lt;BR /&gt;&lt;BR /&gt;POST&lt;/P&gt;</description>
      <pubDate>Fri, 28 Mar 2014 12:32:12 GMT</pubDate>
      <guid>https://community.hpe.com/t5/software-defined-networking/how-do-i-use-the-rest-api-meter-to-measure-throughput/m-p/6428804#M217</guid>
      <dc:creator>Dave-B</dc:creator>
      <dc:date>2014-03-28T12:32:12Z</dc:date>
    </item>
    <item>
      <title>Re: How do I use the REST API meter to measure throughput?</title>
      <link>https://community.hpe.com/t5/software-defined-networking/how-do-i-use-the-rest-api-meter-to-measure-throughput/m-p/6455216#M246</link>
      <description>&lt;P&gt;I have managed to create a meter and use it in a flow, what are duration_sec and duration_nsec?&lt;BR /&gt;e.g.&lt;BR /&gt;&lt;BR /&gt;# Add Meter&lt;BR /&gt;$ curl --header "X-Auth-Token:123456789" -H "Content-Type:application/json" -ksS --url "https://localhost:8443/sdn/v2.0/of/datapaths/00:02:6c:3b:e5:62:b2:80/meters" -d "{\"version\": \"1.3.0\",\"meter\": {\"id\": 1,\"command\": \"add\",\"flags\": [\"kbps\",\"burst\",\"stats\"],\"bands\": [{\"burst_size\": 1000,\"rate\": 100,\"mtype\": \"dscp_remark\",\"prec_level\": 1}]}}" --request POST&lt;BR /&gt;&lt;BR /&gt;# Show Meter&lt;BR /&gt;curl -sk -H "X-Auth-Token:123456789" https://localhost:8443/sdn/v2.0/of/datapaths/00:02:6c:3b:e5:62:b2:80/meters&lt;BR /&gt;{"version":"1.3.0","meters":[{"id":1,"flags":["kbps","burst","stats"],"bands":[{"burst_size":1000,"rate":100,"mtype":"dscp_remark","prec_level":1}]}]}&lt;BR /&gt;&lt;BR /&gt;# Show Meter stats&lt;BR /&gt;curl -sk -H "X-Auth-Token:123456789" https://localhost:8443/sdn/v2.0/of/stats/meters?dpid="00:02:6c:3b:e5:62:b2:80"&lt;BR /&gt;{"version":"1.3.0","meter_stats":[{"id":1,"flow_count":0,"packet_count":0,"byte_count":0,"duration_sec":3320956089,"duration_nsec":3760967296,"band_stats":[{"packet_count":0,"byte_count":0}]}]}rduser@rdch200:~$&lt;BR /&gt;&lt;BR /&gt;curl -sk -H "X-Auth-Token:123456789" https://localhost:8443/sdn/v2.0/of/stats/meters?dpid="00:02:6c:3b:e5:62:b2:80"&amp;amp;meter_id=1&lt;BR /&gt;$ {"version":"1.3.0","meter_stats":[{"id":1,"flow_count":0,"packet_count":0,"byte_count":0,"duration_sec":3320956089,"duration_nsec":3792967296,"band_stats":[{"packet_count":0,"byte_count":0}]}]}&lt;BR /&gt;&lt;BR /&gt;# Add meter to flow&lt;BR /&gt;curl --header "X-Auth-Token:123456789" -H "Content-Type:application/json" -ksS --url "https://localhost:8443/sdn/v2.0/of/datapaths/00:02:6c:3b:e5:62:b2:80/flows" -d "{\"flow\": {\"priority\": 30000,\"table_id\":100,\"idle_timeout\": 60000,\"match\": [{\"ipv4_dst\":\"10.0.0.100\"},{\"eth_type\": \"ipv4\"}],\"instructions\": [{\"apply_actions\": [{\"output\": 25}]},{\"meter\": 1}]}}" --request POST&lt;BR /&gt;&lt;BR /&gt;# PIng from a client&lt;BR /&gt;ping -c10 10.0.0.100&lt;BR /&gt;&lt;BR /&gt;# Show Meter stats&lt;BR /&gt;$ curl -sk -H "X-Auth-Token:123456789" https://localhost:8443/sdn/v2.0/of/stats/meters?dpid="00:02:6c:3b:e5:62:b2:80"&amp;amp;meter_id=1&lt;BR /&gt;[1] 22202&lt;BR /&gt;$ {"version":"1.3.0","meter_stats":[{"id":1,"flow_count":1,"packet_count":20,"byte_count":1680,"duration_sec":3320956092,"duration_nsec":4084967296,"band_stats":[{"packet_count":0,"byte_count":0}]}]}&lt;BR /&gt;&lt;BR /&gt;# PIng from a client&lt;BR /&gt;ping -c10 10.0.0.100&lt;BR /&gt;&lt;BR /&gt;# Show Meter stats&lt;BR /&gt;$ curl -sk -H "X-Auth-Token:123456789" https://localhost:8443/sdn/v2.0/of/stats/meters?dpid="00:02:6c:3b:e5:62:b2:80"&lt;BR /&gt;$ {"version":"1.3.0","meter_stats":[{"id":1,"flow_count":1,"packet_count":40,"byte_count":3360,"duration_sec":3320956093,"duration_nsec":3431967296,"band_stats":[{"packet_count":0,"byte_count":0}]}]}&lt;BR /&gt;&lt;BR /&gt;There was more than 1 second between each ping -c10 10.0.0.100 and meter stats, but duration_sec has increased by only 1 second, so I presume duration_sec is not the time in seconds since the meter was created or used in a flow.&lt;BR /&gt;The packet_count and byte_count appear to to be cumulative, so I presume duration_nsec is not the duration of the measurement.&lt;BR /&gt;&lt;BR /&gt;Is there I way to use duration_sec and duration_nsec to calculate packets/s and bytles/s.&lt;/P&gt;</description>
      <pubDate>Wed, 23 Apr 2014 13:24:14 GMT</pubDate>
      <guid>https://community.hpe.com/t5/software-defined-networking/how-do-i-use-the-rest-api-meter-to-measure-throughput/m-p/6455216#M246</guid>
      <dc:creator>Dave-B</dc:creator>
      <dc:date>2014-04-23T13:24:14Z</dc:date>
    </item>
    <item>
      <title>Re: How do I use the REST API meter to measure throughput?</title>
      <link>https://community.hpe.com/t5/software-defined-networking/how-do-i-use-the-rest-api-meter-to-measure-throughput/m-p/6472942#M278</link>
      <description>&lt;P&gt;Hi Dave&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am busy looking into this. I have found some results that needs a bit more investigation.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Kind Regards&lt;/P&gt;&lt;P&gt;Gerhard&lt;/P&gt;&lt;P&gt;HP SDN Team&lt;/P&gt;</description>
      <pubDate>Mon, 12 May 2014 19:48:56 GMT</pubDate>
      <guid>https://community.hpe.com/t5/software-defined-networking/how-do-i-use-the-rest-api-meter-to-measure-throughput/m-p/6472942#M278</guid>
      <dc:creator>Gerhard Roets</dc:creator>
      <dc:date>2014-05-12T19:48:56Z</dc:date>
    </item>
    <item>
      <title>Re: How do I use the REST API meter to measure throughput?</title>
      <link>https://community.hpe.com/t5/software-defined-networking/how-do-i-use-the-rest-api-meter-to-measure-throughput/m-p/6487700#M301</link>
      <description>&lt;P&gt;Hi Dave&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am still investigating&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Kind Regards&lt;/P&gt;&lt;P&gt;Gerhard&lt;/P&gt;&lt;P&gt;HP SDN Team&lt;/P&gt;</description>
      <pubDate>Mon, 26 May 2014 18:14:08 GMT</pubDate>
      <guid>https://community.hpe.com/t5/software-defined-networking/how-do-i-use-the-rest-api-meter-to-measure-throughput/m-p/6487700#M301</guid>
      <dc:creator>Gerhard Roets</dc:creator>
      <dc:date>2014-05-26T18:14:08Z</dc:date>
    </item>
    <item>
      <title>Re: How do I use the REST API meter to measure throughput?</title>
      <link>https://community.hpe.com/t5/software-defined-networking/how-do-i-use-the-rest-api-meter-to-measure-throughput/m-p/6568108#M381</link>
      <description>&lt;P&gt;Hi Dave&lt;/P&gt;&lt;P&gt;This is a response that will leverage a bit from the port stats earlier post. So there will be a bit of duplication but I want to keep it in for the sake of other forum visitors.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;First let’s start with what duration_sec and duration_nsec is the time since this OpenFlow meter was created. These are not intervals but the time at what this sample was collected. This is to enable the user to eliminate the latency in the OpenFlow control channel exchange. If you query this via REST this will add even more latency.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The point in time can be calculated as follow: The total duration in nanoseconds can be computed as duration_sec*10^9+duration nsec ( Or in terms of seconds duration_sec.duration_nsec*10^-9).&lt;/P&gt;&lt;P&gt;As an example Assume duration_sec=9 and duration_nsec=1,000,000 then this would be&lt;/P&gt;&lt;P&gt;90,000,000,001,000,000 nanoseconds or 9.000,1 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Note that the minimum required accuracy required by the OpenFlow spec is 1 sec.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Note the statistics is not being reset when they are queried.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Based on the data supplied and other forum questions you posted this looks like you are using Provision switches. Currently there is an issue that is being worked on since the values returned duration_sec":4294967295,"duration_nsec":4294967295 is incorrect. This will be fixed in a future version of software. Be aware that these timers can be reset to zero when the meter is being recreated for instance.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;One thing to be aware of the software does poll the hardware that accelerate these flows at a certain interval so these stats sometimes take a few seconds to show up. By default on Provision this is 20 seconds you can decrease this interval but this increases the CPU utilization. Keep this in mind when tuning your sampling intervals and hardware refresh rates.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The logic below is generic for any switch that supports this.&lt;/P&gt;&lt;P&gt;The logic is as follows under normal circumstances&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Create a meter&lt;/LI&gt;&lt;LI&gt;Create a flow that utilizes the meter&lt;/LI&gt;&lt;LI&gt;Collect sample one and store the counters of interest including the duration values&lt;/LI&gt;&lt;LI&gt;Also store the system time at which you collected this&lt;/LI&gt;&lt;LI&gt;Sleep for the sample interval&lt;/LI&gt;&lt;LI&gt;Collect sample two and store the counters of interest including the duration values&lt;/LI&gt;&lt;LI&gt;Also store the system time at which you collected this&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now at this point you can subtract the sample one values from the sample two values.&lt;/P&gt;&lt;P&gt;You can calculate the interval over which this took place, and you can compare it to the system time interval and account for anomalies based on this for instance counters being reset or something similar, and enable you to take appropriate action.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As a workaround for the issue mentioned above while the issue mentioned for duration_sec and duration_nsec is being worked on simply base the calculation on the system time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sample of the exercise (I am using a switch that return duration_sec and duration_nsec correctly). I will transmit about 1000 frames of 640 bytes each that matches my flow over this interval. I used a packet generator for this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;dpid is my datapath id&lt;/P&gt;&lt;P&gt;tok is my x-auth-token&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Start by creating a text file for the meter called meter in this case containing its json&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; "meter": {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "bands": [&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "burst_size": 100000,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "mtype": "dscp_remark",&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "prec_level": 1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "rate": 10000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ],&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "command": "add",&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "flags": [&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "kbps",&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "burst",&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "stats"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ],&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "id": 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; "version": "1.3.0"&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Create a text file for the metered flow called metered_flow in this case containing its json&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; "flow": {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "idle_timeout": 0,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "instructions": [&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "apply_actions": [&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "output": 3&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "meter": 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ],&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "match": [&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "vlan_vid": 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"eth_type": "ipv4"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ipv4_src": "1.1.1.254"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ipv4_dst": "1.1.1.1"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ],&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "priority": 30000,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "table_id": 100&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Next we will create the meter and the flow&lt;/P&gt;&lt;P&gt;Meter:&lt;/P&gt;&lt;P&gt;Command&lt;/P&gt;&lt;P&gt;curl --header "X-Auth-Token:$tok" --header "Content-Type:application/json" --fail -ksS --request POST --url &lt;A href="https://10.128.10.9:8443/sdn/v2.0/of/datapaths/$dpid/meters" target="_blank"&gt;https://10.128.10.9:8443/sdn/v2.0/of/datapaths/$dpid/meters&lt;/A&gt; -d "@meter" | python -mjson.tool&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Output&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; "meter": {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "bands": [&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"burst_size": 100000,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "mtype": "dscp_remark",&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "prec_level": 1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "rate": 10000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ],&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "flags": [&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "kbps",&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "burst",&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "stats"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ],&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"id": 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; "version": "1.3.0"&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Metered flow&lt;/P&gt;&lt;P&gt;Command&lt;/P&gt;&lt;P&gt;curl --header "X-Auth-Token:$tok" --header "Content-Type:application/json" --fail -ksS --request POST --url &lt;A href="https://10.128.10.9:8443/sdn/v2.0/of/datapaths/$dpid/flows/" target="_blank"&gt;https://10.128.10.9:8443/sdn/v2.0/of/datapaths/$dpid/flows/&lt;/A&gt; -d "@metered_flow" | python -mjson.tool&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Output&lt;/P&gt;&lt;P&gt;None&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now for the actual test&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Note in this command the meter_id=1 bit matches the meter I created.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;gpr@sdn1:~$ curl --header "X-Auth-Token:$tok" --header "Content-Type:application/json" --fail -ksS --request GET --url &lt;A href="https://10.128.10.9:8443/sdn/v2.0/of/stats/meters?dpid=&amp;quot;$dpid&amp;quot;\&amp;amp;meter_id=1" target="_blank"&gt;https://10.128.10.9:8443/sdn/v2.0/of/stats/meters?dpid="$dpid"\&amp;amp;meter_id=1&lt;/A&gt; | python -mjson.tool&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; "meter_stats": [&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"band_stats": [&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "byte_count": 0,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "packet_count": 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ],&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "byte_count": 0,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "duration_nsec": 542513897,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "duration_sec": 316,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "flow_count": 1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "id": 1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "packet_count": 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ],&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; "version": "1.3.0"&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;gpr@sdn1:~$ date +%s%N&lt;/P&gt;&lt;P&gt;1407519382344606359&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Inject packets here, and waite long enough for the hardware to sample after injecting the packets.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;gpr@sdn1:~$ curl --header "X-Auth-Token:$tok" --header "Content-Type:application/json" --fail -ksS --request GET --url &lt;A href="https://10.128.10.9:8443/sdn/v2.0/of/stats/meters?dpid=&amp;quot;$dpid&amp;quot;\&amp;amp;meter_id=1" target="_blank"&gt;https://10.128.10.9:8443/sdn/v2.0/of/stats/meters?dpid="$dpid"\&amp;amp;meter_id=1&lt;/A&gt; | python -mjson.tool&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; "meter_stats": [&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "band_stats": [&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "byte_count": 0,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"packet_count": 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ],&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "byte_count": 622000,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "duration_nsec": 959438364,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "duration_sec": 359,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "flow_count": 1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "id": 1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "packet_count": 1000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ],&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; "version": "1.3.0"&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;gpr@sdn1:~$ date +%s%N&lt;/P&gt;&lt;P&gt;1407519426264780234&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sample 1&lt;/P&gt;&lt;P&gt;Duration1 = 316 + 542513897*10^-9 = 316.542513897 seconds Bytes1 = 0&lt;/P&gt;&lt;P&gt;Packet1 = 0&lt;/P&gt;&lt;P&gt;Systime1 = 1407519382344606359 nanoseconds = 1407519382.344606359 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Duration2 = 359 + 959438364*10^-9 = 359.959438364 seconds Bytes2 = 622000&lt;/P&gt;&lt;P&gt;Packet2 = 1000&lt;/P&gt;&lt;P&gt;Systime2 = 1407519426264780234 nanoseconds = 1407519426.264780234 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Duration_delta=43.416924467&lt;/P&gt;&lt;P&gt;Bytes_delta=622000&lt;/P&gt;&lt;P&gt;Packets_delta=1000&lt;/P&gt;&lt;P&gt;Systime_delta=43.920173875&lt;/P&gt;&lt;P&gt;The difference between Systime_delta and Duration_delta is not that big and I knew I used the up arrow to enter the commands so I am happy with that.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The gap is a bit large since it took me a few second to get to the traffic generator window ;).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This then gives me the following based on duration from the switch, I rounded these number.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Bytes/sec = 14326 bytes per second hiting the meter&lt;/P&gt;&lt;P&gt;Packets/sec = 23 packets per second hiting the meter&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Off course in this case my numbers are way out since I know the switch polls these counters only once per 20 seconds. I cannot really use that to generate this measurement per second accurately in this case. My polling rate would need to be over multiple switch samples and the interval I am measuring should be a bit bigger.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I hope this helps explain this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Kind Regards&lt;/P&gt;&lt;P&gt;Gerhard Roets&lt;/P&gt;&lt;P&gt;HP SDN Team&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 08 Aug 2014 18:35:32 GMT</pubDate>
      <guid>https://community.hpe.com/t5/software-defined-networking/how-do-i-use-the-rest-api-meter-to-measure-throughput/m-p/6568108#M381</guid>
      <dc:creator>Gerhard Roets</dc:creator>
      <dc:date>2014-08-08T18:35:32Z</dc:date>
    </item>
    <item>
      <title>Re: How do I use the REST API meter to measure throughput?</title>
      <link>https://community.hpe.com/t5/software-defined-networking/how-do-i-use-the-rest-api-meter-to-measure-throughput/m-p/6601044#M418</link>
      <description>&lt;P&gt;Hi Dave,&lt;BR /&gt;&lt;BR /&gt;Doing a follow up to see if previous post helps you.&lt;BR /&gt;Please let us know if your problem is solved or you still have some problem.&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;HP SDN Team&lt;/P&gt;</description>
      <pubDate>Thu, 04 Sep 2014 10:23:09 GMT</pubDate>
      <guid>https://community.hpe.com/t5/software-defined-networking/how-do-i-use-the-rest-api-meter-to-measure-throughput/m-p/6601044#M418</guid>
      <dc:creator>sdnindia</dc:creator>
      <dc:date>2014-09-04T10:23:09Z</dc:date>
    </item>
  </channel>
</rss>

