[ovs-dev] Problem in datapath flow: eth(bad key length 24, expected 12)

Jesse Gross jesse at kernel.org
Thu Feb 4 01:27:51 UTC 2016


Thanks for the information. I discovered that this has already been
fixed but it is not part of a released version of OVS yet. The
relevant commit is 60642e4fa9b53edbc924ebc22aadbc7696b57407
("datapath: Backport: openvswitch: Fix serialization of non-masked set
actions")

It's currently on branch-2.4, branch-2.5, and master so you can take
your pick of one of those (or just apply the above commit) or wait for
the next release.

This won't result in incorrect traffic flow but in addition to the
cosmetic issue here it will likely result in additional flow
revalidations as userspace tries to correct the apparently wrong
action.

On Wed, Feb 3, 2016 at 8:55 AM,  <thomas.morin at orange.com> wrote:
> Hi Jesse,
>
> I'm also running into a similar issue (or the same).
>
> This is wtih OVS 2.4.1 running the DKMS kernel datapath on kernel
> 3.13.0-55-generic (Ubuntu Trusty).
>
> # ovs-ofctl --version
> ovs-ofctl (Open vSwitch) 2.4.1
> Compiled Sep 14 2015 15:20:24
> OpenFlow versions 0x1:0x4
>
> And, indeed the error is given by ovs-dpctl dump-flows.
>
> root at tm-devstack-mitaka-02:~# ovs-dpctl dump-flows
> recirc_id(0),in_port(5),eth(src=fa:16:3e:6a:1a:d3,dst=00:00:5e:00:43:64),eth_type(0x0800),ipv4(dst=10.10.88.3,tos=0/0xfc,ttl=64,frag=no),
> packets:4444, bytes:435512, used:0.400s,
> actions:set(ipv4(dst=10.10.88.3,ttl=63)),set(eth(bad key length 24, expected
> 12)(b6 ee 28 59 97 18 fa 16 3e a3 03 b8 08 00 04 00 81 00 10 04 08 00 07
> 00)),push_vlan(vid=4,pcp=0),recirc(0x1)
>
> Here is the corresponding trace:
>
> root at tm-devstack-mitaka-02:~# ovs-appctl ofproto/trace
> 'recirc_id(0),in_port(5),eth(src=fa:16:3e:6a:1a:d3,dst=00:00:5e:00:43:64),eth_type(0x0800),ipv4(dst=10.10.88.3,tos=0/0xfc,ttl=64,frag=no)'
> Bridge: br-int
> Flow:
> ip,in_port=5,vlan_tci=0x0000,dl_src=fa:16:3e:6a:1a:d3,dl_dst=00:00:5e:00:43:64,nw_src=0.0.0.0,nw_dst=10.10.88.3,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=64
>
> Rule: table=0 cookie=0x8c3a2abf371236df priority=0
> OpenFlow actions=NORMAL
> forwarding to learned port
>
>     Resubmitted flow:
> ip,in_port=1,dl_vlan=3,dl_vlan_pcp=0,dl_src=fa:16:3e:6a:1a:d3,dl_dst=00:00:5e:00:43:64,nw_src=0.0.0.0,nw_dst=10.10.88.3,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=64
>     Resubmitted regs: reg0=0x0 reg1=0x0 reg2=0x0 reg3=0x0 reg4=0x0 reg5=0x0
> reg6=0x0 reg7=0x0
>     Resubmitted  odp: drop
>     Resubmitted megaflow:
> recirc_id=0,ip,in_port=5,vlan_tci=0x0000/0x1fff,dl_src=fa:16:3e:6a:1a:d3,dl_dst=00:00:5e:00:43:64,nw_frag=no
>     Rule: table=0 cookie=0x8c3a2abf371236df priority=1,in_port=1
>     OpenFlow actions=resubmit(,2)
>
>         Resubmitted flow: unchanged
>         Resubmitted regs: reg0=0x0 reg1=0x0 reg2=0x0 reg3=0x0 reg4=0x0
> reg5=0x0 reg6=0x0 reg7=0x0
>         Resubmitted  odp: drop
>         Resubmitted megaflow:
> recirc_id=0,ip,in_port=5,vlan_tci=0x0000/0x1fff,dl_src=fa:16:3e:6a:1a:d3,dl_dst=00:00:5e:00:43:64,nw_frag=no
>         Rule: table=2 cookie=0x8c3a2abf371236df
> priority=1,in_port=1,dl_dst=00:00:5e:00:43:64
>         OpenFlow actions=output:2
>
>             Resubmitted flow: unchanged
>             Resubmitted regs: reg0=0x0 reg1=0x0 reg2=0x0 reg3=0x0 reg4=0x0
> reg5=0x0 reg6=0x0 reg7=0x0
>             Resubmitted  odp: drop
>             Resubmitted megaflow:
> recirc_id=0,ip,in_port=5,vlan_tci=0x0000/0x1fff,dl_src=fa:16:3e:6a:1a:d3,dl_dst=00:00:5e:00:43:64,nw_frag=no
>             Rule: table=0 cookie=0x3 priority=40000,ip,in_port=1,dl_vlan=3
>             OpenFlow actions=pop_vlan,output:12
>
>                 Resubmitted flow:
> ip,in_port=11,vlan_tci=0x0000,dl_src=fa:16:3e:6a:1a:d3,dl_dst=00:00:5e:00:43:64,nw_src=0.0.0.0,nw_dst=10.10.88.3,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=64
>                 Resubmitted regs: reg0=0x0 reg1=0x0 reg2=0x0 reg3=0x0
> reg4=0x0 reg5=0x0 reg6=0x0 reg7=0x0
>                 Resubmitted  odp: drop
>                 Resubmitted megaflow:
> recirc_id=0,ip,in_port=5,vlan_tci=0x0000,dl_src=fa:16:3e:6a:1a:d3,dl_dst=00:00:5e:00:43:64,nw_dst=10.10.88.3,nw_frag=no
>                 Rule: table=0 cookie=0x3
> priority=40000,ip,in_port=11,nw_dst=10.10.88.3
>                 OpenFlow
> actions=dec_ttl,push_mpls:0x8847,load:0x92->OXM_OF_MPLS_LABEL[],resubmit:3
>
>                     Resubmitted flow:
> mpls,in_port=11,vlan_tci=0x0000,dl_src=fa:16:3e:6a:1a:d3,dl_dst=00:00:5e:00:43:64,mpls_label=146,mpls_tc=0,mpls_ttl=63,mpls_bos=1
>                     Resubmitted regs: reg0=0x0 reg1=0x0 reg2=0x0 reg3=0x0
> reg4=0x0 reg5=0x0 reg6=0x0 reg7=0x0
>                     Resubmitted  odp: drop
>                     Resubmitted megaflow:
> recirc_id=0,ip,in_port=5,vlan_tci=0x0000,dl_src=fa:16:3e:6a:1a:d3,dl_dst=00:00:5e:00:43:64,nw_dst=10.10.88.3,nw_tos=0,nw_ttl=64,mpls_label=0,mpls_bos=0,nw_frag=no
>                     Rule: table=0 cookie=0x4
> priority=40000,mpls,in_port=3,mpls_label=146,mpls_bos=1
>                     OpenFlow
> actions=pop_mpls:0x0800,push_vlan:0x8100,set_field:4100->vlan_vid,set_field:b6:ee:28:59:97:18->eth_src,set_field:fa:16:3e:a3:03:b8->eth_dst,output:2
>
> The rule corresponding to the last action, is:
>
> # ovs-ofctl dump-flows br-mpls |grep mod_dl_dst.*03:b8
>  cookie=0x4, duration=4612.451s, table=0, n_packets=4606, n_bytes=451388,
> idle_age=0, priority=40000,mpls,in_port=3,mpls_label=146,mpls_bos=1
> actions=pop_mpls:0x0800,mod_vlan_vid:4,mod_dl_src:b6:ee:28:59:97:18,mod_dl_dst:fa:16:3e:a3:03:b8,output:2
>
> Best,
>
> -Thomas
>
>
> 2016-01-27 Jesse Gross :
>>
>> On Sun, Jan 24, 2016 at 9:24 PM, Han Zhou <zhouhan at gmail.com> wrote:
>>>
>>> I went into the "bad key length" in below datapath flow in a test
>>> environment:
>>>
>>>
>>> recirc_id(0x109),in_port(5),ct_state(-new+est-rel-inv+trk),eth(src=fa:16:3e:00:49:66,dst=fa:16:3e:ca:4a:20),eth_type(0x0800),ipv4(src=
>>> 22.22.22.4/255.255.255.252,dst=22.22.23.4,tos=0/0x3,ttl=64,frag=no),
>>> packets:4, bytes:392, used:0.740s, actions:set(eth(bad key length 24,
>>> expected 12)(fa 16 3e b8 13 c6 fa 16 3e 2c d3 a2 20 00 0b 00 1c 00 07 00
>>> 16
>>> 16 16 04)),set(ipv4(src=22.22.22.4/255.255.255.252,dst=22.22.23.4,ttl=63)
>>>
>>> ),ct(commit),set(tunnel(tun_id=0x8,dst=10.65.241.187,ttl=64,geneve({class=0xffff,type=0,len=4,0x30004}),flags(df|key))),2
>>
>> What is printing this? ovs-dpctl?
>>
>> Since the length is exactly double the expected length, it seems like
>> we somehow have a masked set action that is unexpected.
>>
>> Can you give all of the relevant version numbers? (Userspace, kernel
>> out-of-tree/upstream module, host kernel)
>> _______________________________________________
>> dev mailing list
>> dev at openvswitch.org
>> http://openvswitch.org/mailman/listinfo/dev
>
>
>
> _________________________________________________________________________________________________________________________
>
> Ce message et ses pieces jointes peuvent contenir des informations
> confidentielles ou privilegiees et ne doivent donc
> pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu
> ce message par erreur, veuillez le signaler
> a l'expediteur et le detruire ainsi que les pieces jointes. Les messages
> electroniques etant susceptibles d'alteration,
> Orange decline toute responsabilite si ce message a ete altere, deforme ou
> falsifie. Merci.
>
> This message and its attachments may contain confidential or privileged
> information that may be protected by law;
> they should not be distributed, used or copied without authorisation.
> If you have received this email in error, please notify the sender and
> delete this message and its attachments.
> As emails may be altered, Orange is not liable for messages that have been
> modified, changed or falsified.
> Thank you.
>
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev



More information about the dev mailing list