> On Nov 30, 2016, at 8:41 AM, Ben Pfaff <[email protected]> wrote:
> 
> On Wed, Nov 30, 2016 at 12:05:46PM +0100, Thomas Morin wrote:
>> Hi Ben,
>> 
>> 2016-11-30, Ben Pfaff:
>>> Do you have any idea what in your OpenFlow pipeline might do that,
>>> i.e. is there anything especially tricky in the OpenFlow flows?
>>> 
>>> Are you willing to show us your OpenFlow flow table?
>> 
>> The setup involves three OVS bridges connected with patch-ports: br-int --
>> br-tun -- br-mpls, with the traffic that triggers the assert being processed
>> by br-int with a NORMAL action (ie. MAC learning).
>> 
>> The flows in this setup aren't particularly tricky, I think, although I'm
>> not sure what qualifies as tricky or non-tricky :)
>> 
>> Anyway, since yesterday I managed to identify the event that trigger the
>> assert, by adding more logging before the assert and displaying the actions
>> taken:
>> 
>> 2016-11-29T14:44:40.126Z|00001|odp_util(revalidator45)|WARN|commit_set_ipv4_action
>> assert would fail....
>> 2016-11-29T14:44:40.126Z|00002|odp_util(revalidator45)|WARN|  base_flow: 
>> ip,in_port=5,dl_vlan=3,dl_vlan_pcp=0,dl_src=fa:16:3e:33:f7:fe,dl_dst=00:00:5e:00:43:64,nw_src=0.0.0.0,nw_dst=0.0.0.0,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=0
>> 2016-11-29T14:44:40.126Z|00003|odp_util(revalidator45)|WARN|  flow: 
>> tcp,in_port=5,dl_vlan=3,dl_vlan_pcp=0,dl_src=fa:16:3e:33:f7:fe,dl_dst=00:00:5e:00:43:64,nw_src=10.0.1.22,nw_dst=10.0.0.3,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=53295,tp_dst=8080,tcp_flags=psh|ack
>> 2016-11-29T14:44:40.126Z|00004|odp_util(revalidator45)|WARN|  masks: 
>> recirc_id=0xffffffff,reg0=0xffffffff,in_port=4294967295,dl_vlan=4095,dl_vlan_pcp=7,dl_src=ff:ff:ff:ff:ff:ff,dl_dst=ff:ff:ff:ff:ff:ff,dl_type=0xffff
>> 2016-11-29T14:44:40.126Z|00005|odp_util(revalidator45)|WARN|  actions: 
>> set(ipv4(src=10.0.1.22,dst=10.0.0.3,ttl=63)),set(eth(src=b8:2a:72:de:1b:e3,dst=00:17:cb:79:2c:01)),push_mpls(label=410384,tc=0,ttl=63,bos=1,eth_type=0x8847),9,set(eth(src=fa:16:3e:33:f7:fe,dst=00:00:5e:00:43:64)),pop_mpls(eth_type=0x800),push_vlan(vid=3,pcp=0),1

push_mpls clears L3/L4, while pop_mpls re-populates them, and then processing 
the output to port 1 hits the assert?

>> 2016-11-29T14:44:40.126Z|00006|odp_util(revalidator45)|WARN| flow->nw_proto
>> (6) != base_flow->nw_proto (0)
>> 2016-11-29T14:44:40.126Z|00007|util(revalidator45)|EMER|lib/odp-util.c:5237:
>> assertion flow->nw_proto == base_flow->nw_proto && flow->nw_frag ==
>> base_flow->nw_frag failed in commit_set_ipv4_action()
> 
> Thanks.  That helps a lot.  The problem is almost certainly related to
> the MPLS actions.  I'll try to take a look later.
> _______________________________________________
> dev mailing list
> [email protected] <mailto:[email protected]>
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev 
> <https://mail.openvswitch.org/mailman/listinfo/ovs-dev>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to