[ovs-dev] OFtest--time for a new run?

Madhu Challa challa at noironetworks.com
Mon Dec 8 19:09:06 UTC 2014


Ok that explains why the barrier isn't working for that test. Sorry about
the delay. Pl find a summary of the remaining failures with the associated
logs.

Thanks.

On Fri, Dec 5, 2014 at 11:24 AM, Ben Pfaff <blp at nicira.com> wrote:

> Currently we don't synchronize barriers and revalidation at all.  If
> we decide that
> this is important for correctness, we will have to write new code to
> implement it.
>
> On Fri, Dec 5, 2014 at 11:21 AM, Madhu Challa <challa at noironetworks.com>
> wrote:
> > Yes it does get a barrier reply. Pl see the logs below. We do see
> > revalidator21 wakeup, but may be we are sending the barrier reply before
> the
> > revalidation completes ? I am not sure how the barrier request
> synchronizes
> > with the revalidation.
> >
> > Thanks.
> >
> > 2014-12-05T19:08:01.710Z|00439|vconn|DBG|tcp:127.0.0.1:6653: received:
> > OFPT_FLOW_MOD (xid=0x20e86f61): ADD
> >
> priority=1250,tcp,in_port=1,vlan_tci=0x0000,dl_src=00:06:07:08:09:0a,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,tp_src=1234,tp_dst=80
> > out_port:0 actions=output:3
> > 2014-12-05T19:08:01.710Z|00440|ofproto_dpif|DBG|need revalidate in
> > ofproto_wait_cb()
> > 2014-12-05T19:08:01.710Z|00441|poll_loop|DBG|wakeup due to [POLLIN] on
> fd 57
> > (127.0.0.1:55146<->127.0.0.1:6653) at lib/stream-fd.c:155
> > 2014-12-05T19:08:01.710Z|00442|vconn|DBG|tcp:127.0.0.1:6653: received:
> > OFPT_BARRIER_REQUEST (xid=0xec5c5cb4):
> > 2014-12-05T19:08:01.710Z|00451|poll_loop(revalidator21)|DBG|wakeup due to
> > [POLLIN] on fd 39 (FIFO pipe:[64669378]) at
> > ofproto/ofproto-dpif-upcall.c:790 (0% CPU usage)
> > 2014-12-05T19:08:01.710Z|00443|vconn|DBG|tcp:127.0.0.1:6653: sent
> (Success):
> > OFPT_BARRIER_REPLY (xid=0xec5c5cb4):
> > 2014-12-05T19:08:01.710Z|00452|dpif(revalidator21)|DBG|dummy at ovs-dummy:
> > flow_dump ufid:eb2b8b89e6a933cfa8e8fedabccad013 <empty>, packets:0,
> bytes:0,
> > used:never
> > 2014-12-05T19:08:01.710Z|00296|poll_loop(revalidator23)|DBG|wakeup due to
> > [POLLIN] on fd 37 (FIFO pipe:[64528939]) at lib/ovs-thread.c:302 (0% CPU
> > usage)
> > 2014-12-05T19:08:01.710Z|00298|poll_loop(revalidator25)|DBG|wakeup due to
> > [POLLIN] on fd 45 (FIFO pipe:[61793514]) at lib/ovs-thread.c:302
> > 2014-12-05T19:08:01.710Z|00297|dpif(revalidator23)|DBG|dummy at ovs-dummy:
> > dumped all flows
> > 2014-12-05T19:08:01.710Z|00271|poll_loop(revalidator24)|DBG|wakeup due to
> > [POLLIN] on fd 41 (FIFO pipe:[64670832]) at lib/ovs-thread.c:302
> > 2014-12-05T19:08:01.710Z|00453|dpif(revalidator21)|DBG|dummy at ovs-dummy:
> > dumped all flows
> > 2014-12-05T19:08:01.710Z|00299|dpif(revalidator25)|DBG|dummy at ovs-dummy:
> > dumped all flows
> > 2014-12-05T19:08:01.710Z|00272|dpif(revalidator24)|DBG|dummy at ovs-dummy:
> > dumped all flows
> >
> > On Fri, Dec 5, 2014 at 9:42 AM, Ben Pfaff <blp at nicira.com> wrote:
> >>
> >> On Thu, Dec 4, 2014 at 3:17 PM, Madhu Challa <challa at noironetworks.com>
> >> wrote:
> >> > 6 of the tests fail because we failed to revalidate the flows fast
> >> > enough.
> >> >
> >> > e.g the pktact priority tests
> >> > add flow in_port=1, match M actions=output:2 with priority 250
> >> > sends a packet and verifies its egress port is 2
> >> > add flow in_port=1, match M actions=output:3 with priority 1250
> >> > sends a packet and verifies its egress port is 3 (which fails)
> >>
> >> Hmm, if there's a barrier message in there then there might be a
> >> reasonable
> >> claim that Open vSwitch should complete revalidation.  Is there a
> barrier?
> >
> >
>
>
>
> --
> "I don't normally do acked-by's.  I think it's my way of avoiding
> getting blamed when it all blows up."               Andrew Morton
>
-------------- next part --------------
FAIL: pktact.WildcardPriorityWithDelete
FAIL: pktact.WildcardPriority
FAIL: pktact.FloodMinusPort
FAIL: pktact.SingleWildcardMatchPriority
FAIL: detailed_contr_sw_messages.ModifyAction
FAIL: detailed_contr_sw_messages.Outport2
FAIL: detailed_contr_sw_messages.StrictModifyAction

- All these tests should pass if we complete revalidation before barrier reply.
- other than this there is no bug here.

=============================================================
FAIL: detailed_contr_sw_messages.DeleteEmerFlow

Looks like ovs does not support this feature.

- Inserting a emergency flow with send_flow_removed flag set, Expecting no flow_removed_message on the deletion of the emergency flow. 
- Received error message: xid=1734012925 type=OFPET_FLOW_MOD_FAILED (3) code=OFPFMFC_ALL_TABLES_FULL (0), Got flow_mod_failed_error_msg message

2014-12-05T08:00:15.680Z|02783|vconn|DBG|tcp:127.0.0.1:6653: received: OFPT_FLOW_MOD (xid=0xa429a45d): ***decode error: OFPFMFC_TABLE_FULL***
2014-12-05T08:00:15.680Z|02784|connmgr|INFO|br0<->tcp:127.0.0.1:6653: sending OFPFMFC_TABLE_FULL error reply to OFPT_FLOW_MOD message
2014-12-05T08:00:15.680Z|02785|vconn|DBG|tcp:127.0.0.1:6653: sent (Success): OFPT_ERROR (xid=0xa429a45d): OFPFMFC_TABLE_FULL
OFPT_FLOW_MOD (xid=0xa429a45d):
(***truncated to 64 bytes from 80***)
00000000  01 0e 00 50 a4 29 a4 5d-00 00 00 01 00 01 00 06 |...P.).]........|
00000010  07 08 09 0a 00 01 02 03-04 05 ff ff 00 00 08 00 |................|
00000020  00 06 00 00 c0 a8 00 01-c0 a8 00 02 04 d2 00 50 |...............P|
00000030  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |................|

=============================================================
FAIL: flow_expire.FlowExpire

Looks like a bug to me, the test was expecting wildcards = 0 in response.

- response Flow table entry does not match
- Msg in: version 1 class flow_removed len 88 xid, Got flow_removed message

 83  ->         self.assertEqual(match, response.match,
 84                              'Flow table entry does not match')

(Pdb) match.__dict__
{'wildcards': 0, 'eth_dst': [0, 1, 2, 3, 4, 5], 'ipv4_dst': 3232235522, 'vlan_pcp': 0, 'tcp_src': 1234, 'ipv4_src': 3232235521, 'eth_type': 2048, 'tcp_dst': 80, 'vlan_vid': 65535, 'ip_proto': 6, 'eth_src': [0, 6, 7, 8, 9, 10], 'in_port': 1, 'ip_dscp': 0}
(Pdb) response.match.__dict__
{'wildcards': 1048576, 'eth_dst': [0, 1, 2, 3, 4, 5], 'ipv4_dst': 3232235522, 'vlan_pcp': 0, 'tcp_src': 1234, 'ipv4_src': 3232235521, 'eth_type': 2048, 'tcp_dst': 80, 'vlan_vid': 65535, 'ip_proto': 6, 'eth_src': [0, 6, 7, 8, 9, 10], 'in_port': 1, 'ip_dscp': 0}
(Pdb)

=============================================================
FAIL: flow_stats.SingleFlowStats

The root cause is same as previous one because the only difference I see is the wildcards is not 0 due to which the test fails.

- Msg out: version 1 class flow_stats_request len 56 xid 2717328606
- Msg in: version 1 class flow_stats_reply len 108 xid 2717328606

flow_stats.SingleFlowStats

 90                     self.assertEqual(flow_mod_msg.match, obj.match,
 91                                      "Matches do not match")

(Pdb) print flow_mod_msg.match.__dict__
{'wildcards': 0, 'eth_dst': [0, 1, 2, 3, 4, 5], 'ipv4_dst': 3232235522, 'vlan_pcp': 0, 'tcp_src': 1234, 'ipv4_src': 3232235521, 'eth_type': 2048, 'tcp_dst': 80, 'vlan_vid': 65535, 'ip_proto': 6, 'eth_src': [0, 6, 7, 8, 9, 10], 'in_port': 1, 'ip_dscp': 0}
(Pdb) print obj.match.__dict__
{'wildcards': 1048576, 'eth_dst': [0, 1, 2, 3, 4, 5], 'ipv4_dst': 3232235522, 'vlan_pcp': 0, 'tcp_src': 1234, 'ipv4_src': 3232235521, 'eth_type': 2048, 'tcp_dst': 80, 'vlan_vid': 65535, 'ip_proto': 6, 'eth_src': [0, 6, 7, 8, 9, 10], 'in_port': 1, 'ip_dscp': 0}
(Pdb)

2014-12-05T08:12:58.657Z|03606|vconn|DBG|tcp:127.0.0.1:6653: received: OFPST_FLOW request (xid=0x74ce4ab7): tcp,in_port=1,vlan_tci=0x0000,dl_src=00:06:07:08:09:0a,dl_dst=00:01:02:03:04:05,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,tp_src=1234,tp_dst=80
2014-12-05T08:12:58.658Z|03607|vconn|DBG|tcp:127.0.0.1:6653: sent (Success): OFPST_FLOW reply (xid=0x74ce4ab7):
 cookie=0x1364eb674b94f7, duration=0.001s, table=0, n_packets=0, n_bytes=0, idle_timeout=60000, hard_timeout=65000, priority=65535,tcp,in_port=1,vlan_tci=0x0000,dl_src=00:06:07:08:09:0a,dl_dst=00:01:02:03:04:05,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,tp_src=1234,tp_dst=80 actions=output:2


=============================================================
FAIL: pktact.DirectLlcPackets

- A corrupted LLC packet is getting forwarded and the test expects it to be dropped. Based on the flows programmed its not clear to me why it should be dropped and I need to debug this.


More information about the dev mailing list