Hi,

I'm attempting to collect packet statistics from flow remove messages. But
I found some flow statistics are of no consistence.

The topology of my experiment is a linear one, which is generated from "mn
--topo=linear,5,1".
i.e., h1 -- s1-eth1 -- s1-eth2 -- s2-eth2 -- s2-eth3 -- s3-eth2 -- s3-eth3
-- s4-eth2 -- s4-eth3 -- s5-eth2 -- s5-eth1 -- h5. (some host are ignored).
And in my experiment, packets are forwarded according to its IPv4
destination address.
Firstly, I inject the following rules to assure every IP packets can be
forwarded from h1 to h5 without any PacketIn message being triggered.
----------------------------------------------------------------------------------------
  switch |                          rule
----------------------------------------------------------------------------------------
    s1     |   ip,nw_dst=10.0.0.5,priority=1,actions=output:2
    s2     |   ip,nw_dst=10.0.0.5,priority=1,actions=output:3
    s3     |   ip,nw_dst=10.0.0.5,priority=1,actions=output:3
    s4     |   ip,nw_dst=10.0.0.5,priority=1,actions=output:3
    s5     |   ip,nw_dst=10.0.0.5,priority=1,actions=output:1
-----------------------------------------------------------------------------------------
Secondly, I use traffic generation tool (nping) to inject traffic from h1
to h5 (h1 nping -N -udp -g 2000 -p 3000-3600 -delay 0.2 -c 1 10.0.0.5). And
destination port is also used as an identity.
Thirdly, I insert new rules on s5 and s3 to count packets directed to h5
and with the tos field set to 24, and the hard timeout of those rule is set
to 30 seconds. Besides, those rules have a priority of 2.
Finally, I install a new rule on s1 to set the tos field to 24 for all
traffic toward to 10.0.0.5. Also, this rule have a priority of 2 and its
hard timeout is set to 10 seconds.
Those three rules are listed as follows:
----------------------------------------------------------------------------------------------------------------------------------------
  switch |                          rule
----------------------------------------------------------------------------------------------------------------------------------------
    s1     |
ip,nw_dst=10.0.0.5,priority=2,hardtimeout=10,actions=mod_nw_tos=24,output:2
    s3     |
ip,nw_dst=10.0.0.5,nw_tos=24,priority=2,hardtimeout=30,actions=output:3
    s5     |
ip,nw_dst=10.0.0.5,nw_tos=24,priority=2,hardtimeout=30,actions=output:1
-----------------------------------------------------------------------------------------------------------------------------------------
In general, those three rules should report the same flow statistics after
their expire, but actually, the first rule (on s1) report a different (at a
distance of about 1 or 2 packets) packet count and byte count some times.
For example, the statistics may be: 52 55 55.

My test script is as attached as the attachement. An example output is as
follows:
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=185.030s, table=0, n_packets=549, n_bytes=23058,
hard_timeout=3000, idle_age=64, priority=1,ip,nw_dst=10.0.0.5
actions=output:2
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=185.028s, table=0, n_packets=601, n_bytes=25242,
hard_timeout=3000, idle_age=64, priority=1,ip,nw_dst=10.0.0.5
actions=output:3
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=185.026s, table=0, n_packets=546, n_bytes=22932,
hard_timeout=3000, idle_age=64, priority=1,ip,nw_dst=10.0.0.5
actions=output:3
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=185.023s, table=0, n_packets=601, n_bytes=25242,
hard_timeout=3000, idle_age=64, priority=1,ip,nw_dst=10.0.0.5
actions=output:3
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=185.021s, table=0, n_packets=546, n_bytes=22932,
hard_timeout=3000, idle_age=64, priority=1,ip,nw_dst=10.0.0.5
actions=output:1
They are statistics from the flow rules injected firstly(the rules in the
first table).
The packet statistics of the second batch of flow rules is calculated from
those statistics, say 52 = 601-549, 55 = 601-546, 55=601-546

So, my doubt is why those statistics are not of the same quantity? Is there
anything wrong with my method?

Attachment: rule-test.sh
Description: Bourne shell script

_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to