[ovs-discuss] MPLS issue in OVS

Justin Pettit jpettit at ovn.org
Wed Apr 5 20:00:44 UTC 2017


I know very little about the MPLS integration, but I have one thing that might be worth checking.  Are you using the OVS kernel module that came with OVS 2.6.1 or the one that comes with Linux 4.2?  Linux 4.2 came out a year before OVS 2.6, and 2.6 introduced MPLS TTL.  It looks like the kernel datapath is rejecting the attempt to add that flow, so I'd make sure that you're using the kernel datapath that came with the OVS release.

--Justin


> On Apr 5, 2017, at 2:29 AM, f 62 <mailtov16 at gmail.com> wrote:
> 
> This is the log of ovs-vswitchd:
> 
> 2017-04-05T05:45:45.944Z|00205|dpif(handler14)|WARN|system at ovs-system: failed to put[create] (Invalid argument) ufid:d62cd3db-17dd-488f-99bc-9da8b7e59c24 recirc_id(0),dp_hash(0/0),skb_priority(0/0),in_port(10),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),eth(src=fa:16:3e:7f:19:13,dst=fa:16:3e:78:13:cd),eth_type(0x0800),ipv4(src=51.0.0.4,dst=51.0.0.13,proto=6,tos=0/0xfc,ttl=64,frag=no),tcp(src=48250,dst=80),tcp_flags(0/0), actions:set(eth(src=fa:16:3e:7f:19:13,dst=fa:16:3e:48:cd:9e)),set(tunnel(tun_id=0x49,src=192.168.2.91,dst=192.168.2.177,ttl=64,flags(df|key))),push_mpls(label=511,tc=0,ttl=255,bos=1,eth_type=0x8847),9,set(eth(src=fa:16:3e:7f:19:13,dst=fa:16:3e:78:13:cd)),pop_mpls(eth_type=0x800),push_mpls(label=510,tc=0,ttl=254,bos=1,eth_type=0x8847),9
> 2017-04-05T05:45:45.944Z|00206|dpif(handler14)|WARN|system at ovs-system: execute set(eth(src=fa:16:3e:7f:19:13,dst=fa:16:3e:48:cd:9e)),set(tunnel(tun_id=0x49,src=192.168.2.91,dst=192.168.2.177,ttl=64,flags(df|key))),push_mpls(label=511,tc=0,ttl=255,bos=1,eth_type=0x8847),9,set(eth(src=fa:16:3e:7f:19:13,dst=fa:16:3e:78:13:cd)),pop_mpls(eth_type=0x800),push_mpls(label=510,tc=0,ttl=254,bos=1,eth_type=0x8847),9 failed (Invalid argument) on packet tcp,vlan_tci=0x0000,dl_src=fa:16:3e:7f:19:13,dl_dst=fa:16:3e:78:13:cd,nw_src=51.0.0.4,nw_dst=51.0.0.13,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=48250,tp_dst=80,tcp_flags=syn tcp_csum:91ac
>  mtu 0
> 2017-04-05T05:45:53.952Z|00207|dpif(handler14)|WARN|system at ovs-system: failed to put[create] (Invalid argument) ufid:d62cd3db-17dd-488f-99bc-9da8b7e59c24 recirc_id(0),dp_hash(0/0),skb_priority(0/0),in_port(10),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),eth(src=fa:16:3e:7f:19:13,dst=fa:16:3e:78:13:cd),eth_type(0x0800),ipv4(src=51.0.0.4,dst=51.0.0.13,proto=6,tos=0/0xfc,ttl=64,frag=no),tcp(src=48250,dst=80),tcp_flags(0/0), actions:set(eth(src=fa:16:3e:7f:19:13,dst=fa:16:3e:48:cd:9e)),set(tunnel(tun_id=0x49,src=192.168.2.91,dst=192.168.2.177,ttl=64,flags(df|key))),push_mpls(label=511,tc=0,ttl=255,bos=1,eth_type=0x8847),9,set(eth(src=fa:16:3e:7f:19:13,dst=fa:16:3e:78:13:cd)),pop_mpls(eth_type=0x800),push_mpls(label=510,tc=0,ttl=254,bos=1,eth_type=0x8847),9
> 2017-04-05T05:45:53.952Z|00208|dpif(handler14)|WARN|system at ovs-system: execute set(eth(src=fa:16:3e:7f:19:13,dst=fa:16:3e:48:cd:9e)),set(tunnel(tun_id=0x49,src=192.168.2.91,dst=192.168.2.177,ttl=64,flags(df|key))),push_mpls(label=511,tc=0,ttl=255,bos=1,eth_type=0x8847),9,set(eth(src=fa:16:3e:7f:19:13,dst=fa:16:3e:78:13:cd)),pop_mpls(eth_type=0x800),push_mpls(label=510,tc=0,ttl=254,bos=1,eth_type=0x8847),9 failed (Invalid argument) on packet tcp,vlan_tci=0x0000,dl_src=fa:16:3e:7f:19:13,dl_dst=fa:16:3e:78:13:cd,nw_src=51.0.0.4,nw_dst=51.0.0.13,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=48250,tp_dst=80,tcp_flags=syn tcp_csum:89da
>  mtu 0
> 2017-04-05T05:46:09.984Z|00209|dpif(handler14)|WARN|system at ovs-system: failed to put[create] (Invalid argument) ufid:d62cd3db-17dd-488f-99bc-9da8b7e59c24 recirc_id(0),dp_hash(0/0),skb_priority(0/0),in_port(10),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),eth(src=fa:16:3e:7f:19:13,dst=fa:16:3e:78:13:cd),eth_type(0x0800),ipv4(src=51.0.0.4,dst=51.0.0.13,proto=6,tos=0/0xfc,ttl=64,frag=no),tcp(src=48250,dst=80),tcp_flags(0/0), actions:set(eth(src=fa:16:3e:7f:19:13,dst=fa:16:3e:48:cd:9e)),set(tunnel(tun_id=0x49,src=192.168.2.91,dst=192.168.2.177,ttl=64,flags(df|key))),push_mpls(label=511,tc=0,ttl=255,bos=1,eth_type=0x8847),9,set(eth(src=fa:16:3e:7f:19:13,dst=fa:16:3e:78:13:cd)),pop_mpls(eth_type=0x800),push_mpls(label=510,tc=0,ttl=254,bos=1,eth_type=0x8847),9
> 2017-04-05T05:46:09.984Z|00210|dpif(handler14)|WARN|system at ovs-system: execute set(eth(src=fa:16:3e:7f:19:13,dst=fa:16:3e:48:cd:9e)),set(tunnel(tun_id=0x49,src=192.168.2.91,dst=192.168.2.177,ttl=64,flags(df|key))),push_mpls(label=511,tc=0,ttl=255,bos=1,eth_type=0x8847),9,set(eth(src=fa:16:3e:7f:19:13,dst=fa:16:3e:78:13:cd)),pop_mpls(eth_type=0x800),push_mpls(label=510,tc=0,ttl=254,bos=1,eth_type=0x8847),9 failed (Invalid argument) on packet tcp,vlan_tci=0x0000,dl_src=fa:16:3e:7f:19:13,dl_dst=fa:16:3e:78:13:cd,nw_src=51.0.0.4,nw_dst=51.0.0.13,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=48250,tp_dst=80,tcp_flags=syn tcp_csum:7a32
>  mtu 0
> 
> 
> 
> On Wed, Apr 5, 2017 at 10:28 AM, f 62 <mailtov16 at gmail.com> wrote:
> I have configured ovs flows like this on ovs bridge:
> 
> 1. cookie=0x0, duration=2261.104s, table=0, n_packets=23, n_bytes=1702, idle_age=1877, tcp,in_port=8,nw_src=51.0.0.4 actions=group:1,resubmit(8,7)
> 
> 2.  group_id=1,type=select,bucket=actions=set_field:fa:16:3e:48:cd:9e->eth_dst,resubmit(,5)
> 
> 3. cookie=0xb2c6f4127f2f27cc, duration=24849.587s, table=5, n_packets=303, n_bytes=22830, idle_age=1940, priority=0,ip,dl_dst=fa:16:3e:48:cd:9e actions=push_mpls:0x8847,load:0x1ff->OXM_OF_MPLS_LABEL[],set_mpls_ttl(255),mod_vlan_vid:3,output:2
> 
> 4. cookie=0x0, duration=17142.766s, table=7, n_packets=36, n_bytes=2664, idle_age=1996, priority=2,ip,dl_dst=fa:16:3e:78:13:cd actions=push_mpls:0x8847,load:0x1fe->OXM_OF_MPLS_LABEL[],set_mpls_ttl(254),mod_vlan_vid:3,output:2
> 
> ovs port:2 is patch port to tunnel bridge (another ovs bridge)
> 
> On tunnel bridge, this is the flow:
> 
> 5. cookie=0x0, duration=2465.760s, table=22, n_packets=36, n_bytes=2664, idle_age=267, priority=1,dl_vlan=3 actions=strip_vlan,load:0x49->NXM_NX_TUN_ID[],output:2
> 
> If in (3) and (4) I do not set MPLS fields, traffic works as expected.
> 
> Other relevant info:
> cat /proc/version
> Linux version 4.2.0-42-generic (buildd at lgw01-55) (gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) ) #49~14.04.1-Ubuntu SMP Wed Jun 29 20:22:11 UTC 2016
> 
> ovs-vswitchd --version
> ovs-vswitchd (Open vSwitch) 2.6.1
> 
> sudo ovs-dpctl show
> system at ovs-system:
>     lookups: hit:605248 missed:239296 lost:1270
>     flows: 0
>     masks: hit:1966804 total:1 hit/pkt:2.33
>     port 0: ovs-system (internal)
>     port 1: br-int (internal)
>     port 2: br-ex (internal)
>     port 3: br-tun (internal)
>     port 4: tape79dba01-eb (internal)
>     port 5: qr-fc1d6bca-50 (internal)
>     port 6: qg-27b44ec1-74 (internal)
>     port 7: qr-1dd26eee-a7 (internal)
>     port 8: tap29132628-3d (internal)
>     port 9: vxlan_sys_4789 (vxlan)
>     port 10: tap605a9cd5-98
>     port 11: tapb80b5a72-d7
>     port 12: qr-815256d5-48 (internal)
>     port 13: tap96f28437-46 (internal)
>     port 14: tap2ad1704d-cd
>     port 15: qr-fdfee796-74 (internal)
>     port 16: tapea2cd065-96
>     port 17: tapd75ec3fa-97
>     port 18: tapa8e07edf-0e
> 
> sudo ovs-vsctl show
> 52d8f41f-ba03-4006-b666-6d36c79f32d2
>     Manager "ptcp:6640:127.0.0.1"
>         is_connected: true
>     Bridge br-ex
>         Controller "tcp:127.0.0.1:6633"
>             is_connected: true
>         fail_mode: secure
>         Port br-ex
>             Interface br-ex
>                 type: internal
>         Port phy-br-ex
>             Interface phy-br-ex
>                 type: patch
>                 options: {peer=int-br-ex}
>     Bridge br-int
>         Controller "tcp:127.0.0.1:6633"
>             is_connected: true
>         fail_mode: secure
>         Port "tap96f28437-46"
>             tag: 4
>             Interface "tap96f28437-46"
>                 type: internal
>         Port patch-tun
>             Interface patch-tun
>                 type: patch
>                 options: {peer=patch-int}
>         Port "tap29132628-3d"
>             tag: 3
>             Interface "tap29132628-3d"
>                 type: internal
>         Port "qr-fc1d6bca-50"
>             tag: 1
>             Interface "qr-fc1d6bca-50"
>                 type: internal
>         Port "qr-815256d5-48"
>             tag: 3
>             Interface "qr-815256d5-48"
>                 type: internal
>         Port "qg-27b44ec1-74"
>             tag: 2
>             Interface "qg-27b44ec1-74"
>                 type: internal
>         Port int-br-ex
>             Interface int-br-ex
>                 type: patch
>                 options: {peer=phy-br-ex}
>         Port "tapea2cd065-96"
>             tag: 3
>             Interface "tapea2cd065-96"
>         Port "tap605a9cd5-98"
>             tag: 3
>             Interface "tap605a9cd5-98"
>         Port "tap2ad1704d-cd"
>             tag: 4
>             Interface "tap2ad1704d-cd"
>         Port br-int
>             Interface br-int
>                 type: internal
>         Port "tapa8e07edf-0e"
>             tag: 3
>             Interface "tapa8e07edf-0e"
>         Port "tape79dba01-eb"
>             tag: 1
>             Interface "tape79dba01-eb"
>                 type: internal
>         Port "qr-1dd26eee-a7"
>             tag: 1
>             Interface "qr-1dd26eee-a7"
>                 type: internal
>         Port "qr-fdfee796-74"
>             tag: 4
>             Interface "qr-fdfee796-74"
>                 type: internal
>         Port "tapb80b5a72-d7"
>             tag: 3
>             Interface "tapb80b5a72-d7"
>         Port "tapd75ec3fa-97"
>             tag: 3
>             Interface "tapd75ec3fa-97"
>     Bridge br-tun
>         Controller "tcp:127.0.0.1:6633"
>             is_connected: true
>         fail_mode: secure
>         Port patch-int
>             Interface patch-int
>                 type: patch
>                 options: {peer=patch-tun}
>         Port br-tun
>             Interface br-tun
>                 type: internal
>         Port "vxlan-c0a802b1"
>             Interface "vxlan-c0a802b1"
>                 type: vxlan
>                 options: {df_default="true", in_key=flow, local_ip="192.168.2.91", out_key=flow, remote_ip="192.168.2.177"}
>     ovs_version: "2.6.1"
> 
> 
> _______________________________________________
> discuss mailing list
> discuss at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss



More information about the discuss mailing list