[ovs-discuss] Packets not forwarded to queues after hitting flows in OVS QoS

Ben Pfaff blp at ovn.org
Wed Dec 7 22:08:29 UTC 2016


It's pretty surprising to see that only queue 2 is ever set in any of
the datapath flows you show, that is, only set(skb_priority(0x10002)).

What are all of these "transl-" prefixes?  What software are you using?

On Wed, Dec 07, 2016 at 10:00:00PM +0100, Santhosh R P wrote:
> Hi Ben,
> 
> Thanks for the response. I have provided the flows dump here.
> 
> Host MAC Addr: 90:1b:0e:06:0e:c4
> VM1 MAC Addr: 52:54:00:3e:2c:cf
> 
> When the flows are set as below, no QoS takes place. Bandwidth achieved is
> ~880mbps.
> 
> transl-ofctl part-flows test
> 
> ovs-ofctl add-flow test priority=2000,in_port=2,actions=set_queue:1,normal
> ovs-ofctl add-flow test priority=2000,in_port=3,actions=set_queue:2,normal
> transl-ofctl add-flow test priority = 10 actions = normal
> 
> *Before iperf test:*
> 
> [Root @ omi-student15 openvswitch] # transl-dpctl dump flows
> recirc_id(0),in_port(2),eth(src=90:1b:0e:06:0e:c4,dst=00:
> 00:5e:00:01:01),eth_type(0x0800),ipv4(frag=no), packets:2, bytes:160,
> used:2.706s, actions:1 recirc_id(0),in_port(1),eth(
> src=00:15:2c:fa:bb:80,dst=ff:ff:ff:ff:ff:ff),eth_type(
> 0x0806),arp(sip=134.60.30.2,tip=134.60.30.91,op=1/0xff), packets:0,
> bytes:0, used:never, actions:2,3,4 recirc_id(0),in_port(1),eth(
> src=00:15:2c:fa:bb:80,dst=ff:ff:ff:ff:ff:ff),eth_type(
> 0x0806),arp(sip=134.60.30.2,tip=134.60.30.90,op=1/0xff), packets:0,
> bytes:0, used:never, actions:2,3,4 recirc_id(0),in_port(1),eth(
> src=00:15:2c:fa:bb:80,dst=90:1b:0e:06:0e:c4),eth_type(0x0800),ipv4(frag=no),
> packets:3, bytes:640, used:2.733s, actions:2
> 
> 
> *During iperf test:*
> 
> [Root @ omi-student15 openvswitch] # transl-dpctl dump flows recirc_id(0)
> *,in_port(2),eth(src=90:1b:0e:06:0e:c4,dst=52:54:00:3e:2c:cf),*eth_type(0x0800),ipv4(frag=no),
> *packets:12516, *bytes:846036, used:0.000s, flags:SP., actions:3
> recirc_id(0),*in_port(2),eth(src=90:1b:0e:06:0e:c4,dst=00:00:5e:00:01:01)*
> ,eth_type(0x0800),ipv4(frag=no),* packets:5413,* bytes:232047658,
> used:0.001s, flags:SP., actions:1 recirc_id(0),in_port(1),eth(
> src=00:15:2c:fa:bb:80,dst=ff:ff:ff:ff:ff:ff),eth_type(
> 0x0806),arp(sip=134.60.30.2,tip=134.60.30.235,op=1/0xff), packets:0,
> bytes:0, used:never, actions:2,3,4 recirc_id(0),skb_priority(0)
> *,in_port(3),eth(src=52:54:00:3e:2c:cf,dst=90:1b:0e:06:0e:c4)*
> ,eth_type(0x0800),ipv4(frag=no), *packets:5412, *bytes:232048096,
> used:0.001s, flags:SP., actions:set(skb_priority(0x10002)),2
> recirc_id(0),in_port(1),eth(src=00:15:2c:fa:bb:80,dst=ff:
> ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=134.60.30.2,tip=134.60.30.220,op=1/0xff),
> packets:0, bytes:0, used:never, actions:2,3,4 recirc_id(0),in_port(1),eth(
> src=00:15:2c:fa:bb:80,dst=ff:ff:ff:ff:ff:ff),eth_type(
> 0x0806),arp(sip=134.60.30.2,tip=134.60.30.91,op=1/0xff), packets:0,
> bytes:0, used:never, actions:2,3,4 recirc_id(0),in_port(1),eth(
> src=00:15:2c:fa:bb:80,dst=ff:ff:ff:ff:ff:ff),eth_type(
> 0x0806),arp(sip=134.60.30.2,tip=134.60.30.103,op=1/0xff), packets:0,
> bytes:0, used:never, actions:2,3,4 recirc_id(0),in_port(1),eth(
> src=00:15:2c:fa:bb:80,dst=ff:ff:ff:ff:ff:ff),eth_type(
> 0x0806),arp(sip=134.60.30.2,tip=134.60.30.90,op=1/0xff), packets:0,
> bytes:0, used:never, actions:2,3,4 recirc_id(0),in_port(1),eth(
> src=00:15:2c:fa:bb:80,dst=90:1b:0e:06:0e:c4),eth_type(0x0800),ipv4(frag=no),
> packets:12520, bytes:847246, used:0.000s, flags:SP., actions:2
> 
> [Root @ omi-student15 openvswitch] # transl-dpctl dump flows recirc_id(0)
> *,in_port(2),eth(src=90:1b:0e:06:0e:c4,dst=52:54:00:3e:2c:cf)*,eth_type(0x0800),ipv4(frag=no),
> *packets:38918, *bytes:2611380, used:0.001s, flags:SP., actions:3
> recirc_id(0)*,in_port(2),eth(src=90:1b:0e:06:0e:c4,dst=00:00:5e:00:01:01)*
> ,eth_type(0x0800),ipv4(frag=no),* packets:12524, *bytes:534365224,
> used:0.001s, flags:SP., actions:1 recirc_id(0),in_port(1),eth(
> src=00:15:2c:fa:bb:80,dst=ff:ff:ff:ff:ff:ff),eth_type(
> 0x0806),arp(sip=134.60.30.2,tip=134.60.30.235,op=1/0xff), packets:0,
> bytes:0, used:never, actions:2,3,4 recirc_id(0),skb_priority(0)
> *,in_port(3),eth(src=52:54:00:3e:2c:cf,dst=90:1b:0e:06:0e:c4)*
> ,eth_type(0x0800),ipv4(frag=no),* packets:12521,* bytes:534365726,
> used:0.001s, flags:SP., actions:set(skb_priority(0x10002)),2
> recirc_id(0),in_port(1),eth(src=00:15:2c:fa:bb:80,dst=ff:
> ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=134.60.30.2,tip=134.60.30.220,op=1/0xff),
> packets:0, bytes:0, used:never, actions:2,3,4 recirc_id(0),in_port(1),eth(
> src=00:15:2c:fa:bb:80,dst=ff:ff:ff:ff:ff:ff),eth_type(
> 0x0806),arp(sip=134.60.30.2,tip=134.60.30.91,op=1/0xff), packets:0,
> bytes:0, used:never, actions:2,3,4 recirc_id(0),in_port(1),eth(
> src=00:15:2c:fa:bb:80,dst=ff:ff:ff:ff:ff:ff),eth_type(
> 0x0806),arp(sip=134.60.30.2,tip=134.60.30.103,op=1/0xff), packets:0,
> bytes:0, used:never, actions:2,3,4 recirc_id(0),in_port(1),eth(
> src=00:15:2c:fa:bb:80,dst=ff:ff:ff:ff:ff:ff),eth_type(
> 0x0806),arp(sip=134.60.30.2,tip=134.60.30.90,op=1/0xff), packets:0,
> bytes:0, used:never, actions:2,3,4 recirc_id(0),in_port(1),eth(
> src=00:15:2c:fa:bb:80,dst=90:1b:0e:06:0e:c4),eth_type(0x0800),ipv4(frag=no),
> packets:38924, bytes:2612954, used:0.001s, flags:SP., actions:2
> 
> [Root @ omi-student15 openvswitch] # transl-dpctl dump flows recirc_id(0)
> *,in_port(2),eth(src=90:1b:0e:06:0e:c4,dst=52:54:00:3e:2c:cf)*,eth_type(
> 0x0800),ipv4(frag=no),* packets:66352,* bytes:4448220, used:0.000s,
> flags:SP., actions:3 recirc_id(0),in_port(1),eth(
> src=e4:8d:8c:80:f6:e8,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0800),ipv4(frag=no),
> packets:0, bytes:0, used:never, actions:2,3,4 recirc_id(0
> *),in_port(2),eth(src=90:1b:0e:06:0e:c4,dst=00:00:5e:00:01:01)*,eth_type(0x0800),ipv4(frag=no),
> *packets:20097*, bytes:852018438, used:0.000s, flags:SP., actions:1
> recirc_id(0),in_port(1),eth(src=00:15:2c:fa:bb:80,dst=ff:
> ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=134.60.30.2,tip=134.60.30.235,op=1/0xff),
> packets:0, bytes:0, used:never, actions:2,3,4 recirc_id(0),skb_priority(0)
> *,in_port(3),eth(src=52:54:00:3e:2c:cf,dst=90:1b:0e:06:0e:c4*
> ),eth_type(0x0800),ipv4(frag=no),* packets:20094,* bytes:852019288,
> used:0.000s, flags:SP., actions:set(skb_priority(0x10002)),2
> recirc_id(0),in_port(1),eth(src=00:15:2c:fa:bb:80,dst=ff:
> ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=134.60.30.2,tip=134.60.30.220,op=1/0xff),
> packets:0, bytes:0, used:never, actions:2,3,4 recirc_id(0),in_port(1),eth(
> src=00:15:2c:fa:bb:80,dst=ff:ff:ff:ff:ff:ff),eth_type(
> 0x0806),arp(sip=134.60.30.2,tip=134.60.30.91,op=1/0xff), packets:0,
> bytes:0, used:never, actions:2,3,4 recirc_id(0),in_port(1),eth(
> src=e4:8d:8c:80:f6:f8,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0800),ipv4(frag=no),
> packets:0, bytes:0, used:never, actions:2,3,4 recirc_id(0),in_port(1),eth(
> src=00:15:2c:fa:bb:80,dst=ff:ff:ff:ff:ff:ff),eth_type(
> 0x0806),arp(sip=134.60.30.2,tip=134.60.30.103,op=1/0xff), packets:0,
> bytes:0, used:never, actions:2,3,4 recirc_id(0),in_port(1),eth(
> src=00:15:2c:fa:bb:80,dst=ff:ff:ff:ff:ff:ff),eth_type(
> 0x0806),arp(sip=134.60.30.2,tip=134.60.30.90,op=1/0xff), packets:0,
> bytes:0, used:never, actions:2,3,4 recirc_id(0),in_port(1),eth(
> src=00:15:2c:fa:bb:80,dst=90:1b:0e:06:0e:c4),eth_type(0x0800),ipv4(frag=no),
> packets:66358, bytes:4450142, used:0.000s, flags:SP., actions:2
> 
> [Root @ omi-student15 openvswitch] # transl-ofctl dump-flows test
> 
>  cookie=0x0, duration=7.843s, table=0, n_packets=0, n_bytes=0, idle_age=7,
> priority=2000,in_port=2 actions=set_queue:1,NORMAL
> 
>  cookie=0x0, duration=7.836s, table=0, n_packets=0, n_bytes=0, idle_age=7,
> priority=2000,in_port=3 actions=set_queue:2,NORMAL
> 
>  cookie=0x0, duration=7.023s, table=0, n_packets=31, n_bytes=4008,
> idle_age=0, priority=10 actions=NORMAL
> 
> [Root @ omi-student15 openvswitch] # transl-ofctl dump-flows test
> 
>  cookie=0x0, duration=16.051s, table=0, n_packets=*3715*,
> n_bytes=151814970, idle_age=0, priority=2000,in_port=2
> actions=set_queue:1,NORMAL
> 
>  cookie=0x0, duration=16.044s, table=0, n_packets=0, n_bytes=0,
> idle_age=16, priority=2000,in_port=3 actions=set_queue:2,NORMAL
> 
>  cookie=0x0, duration=15.231s, table=0, n_packets=24061, n_bytes=153187485,
> idle_age=0, priority=10 actions=NORMAL
> 
> [Root @ omi-student15 openvswitch] # transl-ofctl dump-flows test
> 
>  cookie=0x0, duration=20.299s, table=0, n_packets=*14404*,
> n_bytes=597840796, idle_age=0, priority=2000,in_port=2
> actions=set_queue:1,NORMAL
> 
>  cookie=0x0, duration=20.292s, table=0, n_packets=0, n_bytes=0,
> idle_age=20, priority=2000,in_port=3 actions=set_queue:2,NORMAL
> 
>  cookie=0x0, duration=19.479s, table=0, n_packets=111539,
> n_bytes=604354050, idle_age=0, priority=10 actions=NORMAL
> 
> [Root @ omi-student15 openvswitch] # transl-ofctl dump-flows test
> 
>  cookie=0x0, duration=25.731s, table=0, n_packets=*26611*,
> n_bytes=1108547451, idle_age=1, priority=2000,in_port=2
> actions=set_queue:1,NORMAL
> 
>  cookie=0x0, duration=25.724s, table=0, n_packets=0, n_bytes=0,
> idle_age=25, priority=2000,in_port=3 actions=set_queue:2,NORMAL
> 
>  cookie=0x0, duration=24.911s, table=0, n_packets=212177,
> n_bytes=1120981238, idle_age=0, priority=10 actions=NORMAL
> 
> 
> 
> 
> 
> 
> On the other hand, when the flows are set as below,  QoS takes place.
> Bandwidth achieved is ~100mbps.
> 
> transl-ofctl part-flows test
> 
> ovs-ofctl add-flow test priority=2000,ip,nw_dst=134.60.64.159,
> actions=set_queue:1,normal
> ovs-ofctl add-flow test priority=2000,in_port=3,actions=set_queue:2,normal
> transl-ofctl add-flow test priority = 10 actions = normal
> 
> 
> *Before iperf test:*
> 
> [Root @ omi-student15 openvswitch] # transl-dpctl dump flows
> recirc_id(0),in_port(2),eth(src=90:1b:0e:06:0e:c4,dst=00:
> 00:5e:00:01:01),eth_type(0x0800),ipv4(dst=0.0.0.0/2.0.0.0,frag=no),
> packets:1, bytes:66, used:4.083s, flags:., actions:1
> recirc_id(0),in_port(1),eth(src=00:15:2c:fa:bb:80,dst=90:
> 1b:0e:06:0e:c4),eth_type(0x0800),ipv4(dst=0.0.2.0/0.0.2.0,frag=no),
> packets:2, bytes:132, used:4.075s, flags:., actions:2
> recirc_id(0),in_port(1),eth(src=00:15:2c:fa:bb:80,dst=ff:
> ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=134.60.30.2,tip=134.60.30.205,op=1/0xff),
> packets:0, bytes:0, used:never, actions:2,3,4
> recirc_id(0),in_port(2),eth(src=90:1b:0e:06:0e:c4,dst=00:
> 00:5e:00:01:01),eth_type(0x0800),ipv4(dst=16.0.0.0/16.0.0.0,frag=no),
> packets:0, bytes:0, used:never, actions:1
> 
> 
> *During iperf test:*
> 
> [Root @ omi-student15 openvswitch] # transl-dpctl dump flows
> recirc_id(0)*,in_port(2),eth(src=90:1b:0e:06:0e:c4,dst=52:54:00:3e:2c:cf)*
> ,eth_type(0x0800),ipv4(dst=0.0.0.0/2.0.0.0,frag=no),* packets:2446*,
> bytes:161448, used:0.001s, flags:SP., actions:3
> recirc_id(0),*in_port(2),eth(src=90:1b:0e:06:0e:c4,dst=00:00:5e:00:01:01)*
> ,eth_type(0x0800),ipv4(dst=0.0.0.0/2.0.0.0,frag=no), packets:4, bytes:303,
> used:0.286s, flags:., actions:1
> recirc_id(0),in_port(1),eth(src=00:15:2c:fa:bb:80,dst=90:
> 1b:0e:06:0e:c4),eth_type(0x0800),ipv4(dst=0.0.2.0/0.0.2.0,frag=no),
> packets:2452, bytes:162297, used:0.001s, flags:SP., actions:2
> recirc_id(0),skb_priority(0),in_port(2),eth(src=90:1b:0e:
> 06:0e:c4,dst=00:00:5e:00:01:01),eth_type(0x0800),ipv4(dst=134.60.64.159,frag=no),
> packets:901, bytes:15558938, used:0.001s, flags:SP.,
> actions:set(skb_priority(0x10002)),1
> recirc_id(0),in_port(1),eth(src=00:15:2c:fa:bb:80,dst=ff:
> ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=134.60.30.2,tip=134.60.30.205,op=1/0xff),
> packets:0, bytes:0, used:never, actions:2,3,4
> recirc_id(0),skb_priority(0
> *),in_port(3),eth(src=52:54:00:3e:2c:cf,dst=90:1b:0e:06:0e:c4)*
> ,eth_type(0x0800),ipv4(dst=134.60.64.159,frag=no),* packets:901*,
> bytes:15558938, used:0.001s, flags:SP., actions:set(skb_priority(0x10002)),2
> 
> 
> [Root @ omi-student15 openvswitch] # transl-dpctl dump flows
> recirc_id(0)*,in_port(2),eth(src=90:1b:0e:06:0e:c4,dst=52:54:00:3e:2c:cf*
> ),eth_type(0x0800),ipv4(dst=0.0.0.0/2.0.0.0,frag=no), *packets:15410*,
> bytes:1017072, used:0.001s, flags:SP., actions:3
> recirc_id(0),in_port(1),eth(src=00:15:2c:fa:bb:80,dst=ff:
> ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=134.60.30.2,tip=134.60.30.110,op=1/0xff),
> packets:0, bytes:0, used:never, actions:2,3,4
> recirc_id(0)*,in_port(2),eth(src=90:1b:0e:06:0e:c4,dst=00:00:5e:00:01:01)*
> ,eth_type(0x0800),ipv4(dst=0.0.0.0/2.0.0.0,frag=no), packets:5, bytes:369,
> used:1.674s, flags:., actions:1
> recirc_id(0),in_port(1),eth(src=00:15:2c:fa:bb:80,dst=90:
> 1b:0e:06:0e:c4),eth_type(0x0800),ipv4(dst=0.0.2.0/0.0.2.0,frag=no),
> packets:15417, bytes:1018335, used:0.001s, flags:SP., actions:2
> recirc_id(0),skb_priority(0),in_port(2),eth(src=90:1b:0e:
> 06:0e:c4,dst=00:00:5e:00:01:01),eth_type(0x0800),ipv4(dst=134.60.64.159,frag=no),
> packets:3071, bytes:52529518, used:0.001s, flags:SP.,
> actions:set(skb_priority(0x10002)),1
> recirc_id(0),in_port(1),eth(src=b8:27:eb:68:c2:59,dst=ff:
> ff:ff:ff:ff:ff),eth_type(0x0800),ipv4(dst=1.0.0.0/1.0.0.0,frag=no),
> packets:0, bytes:0, used:never, actions:2,3,4
> recirc_id(0),in_port(1),eth(src=00:15:2c:fa:bb:80,dst=ff:
> ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=134.60.30.2,tip=134.60.30.22,op=1/0xff),
> packets:0, bytes:0, used:never, actions:2,3,4
> recirc_id(0),in_port(1),eth(src=00:15:2c:fa:bb:80,dst=ff:
> ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=134.60.30.2,tip=134.60.30.205,op=1/0xff),
> packets:0, bytes:0, used:never, actions:2,3,4
> recirc_id(0),skb_priority(0)
> *,in_port(3),eth(src=52:54:00:3e:2c:cf,dst=90:1b:0e:06:0e:c4*
> ),eth_type(0x0800),ipv4(dst=134.60.64.159,frag=no), *packets:3071,
> *bytes:52529518,
> used:0.001s, flags:SP., actions:set(skb_priority(0x10002)),2
> 
> 
> [Root @ omi-student15 openvswitch] # transl-dpctl dump flows
> recirc_id(0)*,in_port(2),eth(src=90:1b:0e:06:0e:c4,dst=52:54:00:3e:2c:cf)*
> ,eth_type(0x0800),ipv4(dst=0.0.0.0/2.0.0.0,frag=no),* packets:27243*,
> bytes:1798050, used:0.001s, flags:SP., actions:3
> recirc_id(0),in_port(1),eth(src=00:15:2c:fa:bb:80,dst=ff:
> ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=134.60.30.2,tip=134.60.30.85,op=1/0xff),
> packets:0, bytes:0, used:never, actions:2,3,4
> recirc_id(0),in_port(1),eth(src=00:15:2c:fa:bb:80,dst=ff:
> ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=134.60.30.2,tip=134.60.30.110,op=1/0xff),
> packets:0, bytes:0, used:never, actions:2,3,4
> recirc_id(0)*,in_port(2),eth(src=90:1b:0e:06:0e:c4,dst=00:00:5e:00:01:01*
> ),eth_type(0x0800),ipv4(dst=0.0.0.0/2.0.0.0,frag=no), packets:5, bytes:369,
> used:4.346s, flags:., actions:1
> recirc_id(0),in_port(1),eth(src=00:15:2c:fa:bb:80,dst=90:
> 1b:0e:06:0e:c4),eth_type(0x0800),ipv4(dst=0.0.2.0/0.0.2.0,frag=no),
> packets:27250, bytes:1799545, used:0.001s, flags:SP., actions:2
> recirc_id(0),skb_priority(0),in_port(2),eth(src=90:1b:0e:
> 06:0e:c4,dst=00:00:5e:00:01:01),eth_type(0x0800),ipv4(dst=134.60.64.159,frag=no),
> packets:5010, bytes:84491860, used:0.001s, flags:SP.,
> actions:set(skb_priority(0x10002)),1
> recirc_id(0),in_port(1),eth(src=e4:8d:8c:80:f6:e8,dst=ff:
> ff:ff:ff:ff:ff),eth_type(0x0800),ipv4(dst=1.0.0.0/1.0.0.0,frag=no),
> packets:0, bytes:0, used:never, actions:2,3,4
> recirc_id(0),in_port(1),eth(src=b8:27:eb:68:c2:59,dst=ff:
> ff:ff:ff:ff:ff),eth_type(0x0800),ipv4(dst=1.0.0.0/1.0.0.0,frag=no),
> packets:0, bytes:0, used:never, actions:2,3,4
> recirc_id(0),in_port(1),eth(src=00:15:2c:fa:bb:80,dst=ff:
> ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=134.60.30.2,tip=134.60.30.22,op=1/0xff),
> packets:0, bytes:0, used:never, actions:2,3,4
> recirc_id(0),in_port(1),eth(src=e4:8d:8c:80:f6:f8,dst=ff:
> ff:ff:ff:ff:ff),eth_type(0x0800),ipv4(dst=1.0.0.0/1.0.0.0,frag=no),
> packets:0, bytes:0, used:never, actions:2,3,4
> recirc_id(0),skb_priority(0)
> *,in_port(3),eth(src=52:54:00:3e:2c:cf,dst=90:1b:0e:06:0e:c4)*
> ,eth_type(0x0800),ipv4(dst=134.60.64.159,frag=no),* packets:5010,
> *bytes:84491860,
> used:0.001s, flags:SP., actions:set(skb_priority(0x10002)),2
> 
> 
> 
> [Root @ omi-student15 openvswitch] # transl-ofctl dump-flows test
>  cookie=0x0, duration=11.616s, table=0, n_packets=0, n_bytes=0,
> idle_age=11, priority=2000,ip,nw_dst=134.60.64.159
> actions=set_queue:1,NORMAL
>  cookie=0x0, duration=11.610s, table=0, n_packets=1, n_bytes=54,
> idle_age=10, priority=2000,in_port=3 actions=set_queue:2,NORMAL
>  cookie=0x0, duration=10.719s, table=0, n_packets=47, n_bytes=4268,
> idle_age=0, priority=10 actions=NORMAL
> [Root @ omi-student15 openvswitch] # transl-ofctl dump-flows test
>  cookie=0x0, duration=17.785s, table=0, n_packets=*963*, n_bytes=16722494,
> idle_age=0, priority=2000,ip,nw_dst=134.60.64.159 actions=set_queue:1,NORMAL
>  cookie=0x0, duration=17.779s, table=0, n_packets=1, n_bytes=54,
> idle_age=17, priority=2000,in_port=3 actions=set_queue:2,NORMAL
>  cookie=0x0, duration=16.888s, table=0, n_packets=2426, n_bytes=181662,
> idle_age=0, priority=10 actions=NORMAL
> [Root @ omi-student15 openvswitch] # transl-ofctl dump-flows test
>  cookie=0x0, duration=21.928s, table=0, n_packets=*7389*,
> n_bytes=126798322, idle_age=0, priority=2000,ip,nw_dst=134.60.64.159
> actions=set_queue:1,NORMAL
>  cookie=0x0, duration=21.922s, table=0, n_packets=1, n_bytes=54,
> idle_age=21, priority=2000,in_port=3 actions=set_queue:2,NORMAL
>  cookie=0x0, duration=21.031s, table=0, n_packets=39495, n_bytes=2630733,
> idle_age=0, priority=10 actions=NORMAL
> [Root @ omi-student15 openvswitch] # transl-ofctl dump-flows test
>  cookie=0x0, duration=27.521s, table=0, n_packets=*14172*,
> n_bytes=245541586, idle_age=0, priority=2000,ip,nw_dst=134.60.64.159
> actions=set_queue:1,NORMAL
>  cookie=0x0, duration=27.515s, table=0, n_packets=1, n_bytes=54,
> idle_age=26, priority=2000,in_port=3 actions=set_queue:2,NORMAL
>  cookie=0x0, duration=26.624s, table=0, n_packets=84667, n_bytes=5607994,
> idle_age=0, priority=10 actions=NORMAL
> 
> 
> 
> [Root @ omi-student15 openvswitch] # transl-vsctl - --columns = name,
> ofport list Interface
> name                : test               ofport              : 65534
> name                : "enp0s25"   ofport              : 1
> name                : "vnet0"        ofport              : 2
> name                : "vnet1"        ofport              : 3
> 
> 
> Please inform me if you need further details.
> 
> Best Regards,
> Santhosh.
> 
> 
> 
> On Wed, Dec 7, 2016 at 5:46 PM, Ben Pfaff <blp at ovn.org> wrote:
> 
> > On Wed, Dec 07, 2016 at 12:20:24PM +0100, Santhosh R P wrote:
> > > Hi,
> > >
> > > The physical port (enp0s25) of the host and the tap devices (vnet0 and
> > > vnet1) of two hosted VMs are added to an OVS bridge named "test".
> > >
> > >    ovs-vsctl show
> > >        Bridge test
> > >            Port test
> > >                Interface test
> > >                    type: internal
> > >            Port "vnet0"
> > >                Interface "vnet0"
> > >            Port "enp0s25"
> > >                Interface "enp0s25"
> > >            Port "vnet1"
> > >                Interface "vnet1"
> > >        ovs_version: "2.5.1"
> > >
> > > I want to apply traffic shaping for the traffic leaving from these two
> > VMs
> > > to an external machine over the internet. So, I created qos for enp0s25
> > > with two queues using,
> > >
> > > ovs-vsctl  set port enp0s25 qos=@newqos -- --id=@newqos create qos
> > > type=linux-htb queues:1=@vnet0queue queues:2=@vnet1queue --
> > > --id=@vnet0queue create queue other-config:max-rate=100000000 --
> > > --id=@vnet1queue create queue other-config:max-rate=200000000
> > >
> > >
> > > QoS and queues are created as expected (both in OVS and TC).
> > >
> > >
> > > ovs-vsctl list qos
> > >
> > >    _uuid               : 9e8b295d-13cf-4c18-9df6-f75809bb1184
> > >
> > >    external_ids        : {}
> > >
> > >    other_config        : {}
> > >
> > >    queues              : {1=c9f1e852-9b29-4736-8b83-8ce1562be857,
> > > 2=3c61b22c-87a4-4380-96b5-822000d2bc94}
> > >
> > >    type                : linux-htb
> > >
> > >
> > > ovs-ofctl -O OpenFlow13 queue-stats test
> > >
> > >    OFPST_QUEUE reply (OF1.3) (xid=0x2): 3 queues
> > >
> > >    port 1 queue 0: bytes=369596, pkts=1119, errors=0,
> > duration=4294961079.
> > > 3744967296s
> > >
> > >    port 1 queue 1: bytes=108, pkts=2, errors=0, duration=4294961079.
> > > 3744967296s
> > >
> > >    port 1 queue 2: bytes=108, pkts=2, errors=0, duration=4294961079.
> > > 3744967296s
> > >
> > > Then, as shown in the FAQ, I created flows to direct the traffic from VMs
> > > to these queues.
> > >
> > >
> > > ovs-ofctl add-flow test priority=2000,in_port=2,action
> > s=set_queue:1,normal
> > > ovs-ofctl add-flow test priority=2000,in_port=3,action
> > s=set_queue:2,normal
> > >
> > > ovs-ofctl add-flow test priority=10,actions=normal
> > >
> > >
> > > The ofport of vnet0 and vnet1 are verified to 2 and 3 respectively
> > > (using: ovs-vsctl
> > > -- --columns=name,ofport list Interface) and the flows are configured
> > > correctly,
> > >
> > > When I use iPerf3 from VM1 to an external IP, I could see that packet
> > count
> > > is increasing in Port 2 (using: ovs-ofctl dump-ports test).
> > >
> > >
> > > The flows before the iPerf test looks like this,
> > >
> > >
> > > ovs-ofctl dump-flows test
> > >
> > >     NXST_FLOW reply (xid=0x4):
> > >
> > >     cookie=0x0, duration=7.439s, table=0, n_packets=0, n_bytes=0,
> > > idle_age=7, priority=2000,in_port=2 actions=set_queue:1,NORMAL
> > >
> > >     cookie=0x0, duration=7.433s, table=0, n_packets=0, n_bytes=0,
> > > idle_age=7, priority=2000,in_port=3 actions=set_queue:2,NORMAL
> > >
> > >     cookie=0x0, duration=6.263s, table=0, n_packets=55, n_bytes=17232,
> > > idle_age=0, priority=10 actions=NORMAL
> > >
> > >
> > > And after the iPerf test, looks like this (with packet counts increased
> > in
> > > flow 1 and 3),
> > >
> > >
> > > ovs-ofctl dump-flows test
> > >
> > >     NXST_FLOW reply (xid=0x4):
> > >
> > >     cookie=0x0, duration=628.046s, table=0, n_packets=26200,
> > > n_bytes=1104961741, idle_age=2, priority=2000,in_port=2
> > > actions=set_queue:1,NORMAL
> > >
> > >     cookie=0x0, duration=628.040s, table=0, n_packets=11, n_bytes=594,
> > > idle_age=14, priority=2000,in_port=3 actions=set_queue:2,NORMAL
> > >
> > >     cookie=0x0, duration=626.870s, table=0, n_packets=203437,
> > > n_bytes=1118596590, idle_age=0, priority=10 actions=NORMAL (packet count
> > > here increased along with first flow in same magnitude)
> > >
> > > But, the packets are not reaching the corresponding queues (verified in
> > > both OVS and TC), and no traffic shaping takes place. The default queue 0
> > > gets filled instead.
> > >
> > >
> > > On the other hand, the flows are hit, queues are filled and traffic
> > shaping
> > > takes place if I use the dest IP address of iperf test as filter in the
> > > flow like this,
> > >
> > >
> > > ovs-ofctl add-flow test priority=2000,ip,nw_dst=134.60.64.159,
> > > actions=set_queue:1,normal
> > > ovs-ofctl add-flow test priority=2000,in_port=3,action
> > s=set_queue:2,normal
> > >
> > > ovs-ofctl add-flow test priority=10,actions=normal
> > >
> > >
> > > Using the src IP of VM1 or the port for VM1, hits the flows, but packets
> > > are not forwarded to the queue.
> > >
> > > If this has something to do with, I used IP Masquerading in the host with
> > > private IPs for both VMs.
> > >
> > > In ovs-vswitchd.log, there is no information other than added and deleted
> > > flows.
> > >
> > >
> > > What am I doing wrong here? Would be grateful to anyone who can help.
> >
> > What's showing up in the kernel flows as displayed by "ovs-dpctl
> > dump-flows" while the test is running?
> >


More information about the discuss mailing list