[ovs-discuss] Reg pushing two mpls labels

Joe Stringer joestringer at nicira.com
Thu Nov 20 21:41:26 UTC 2014


You'll probably find some lines like this in your ovs-vswitchd.log:
2014-11-19T22:19:43.069Z|00007|ofproto_dpif|WARN|system at ovs-system: MPLS
stack length feature probe failed (Numerical result out of range)
2014-11-19T22:19:43.069Z|00008|ofproto_dpif|INFO|system at ovs-system: MPLS
label stack length probed as 1

The kernel only supports 1 level of MPLS label. I'm not familiar with the
latest MPLS flow code, but it's possible that we detect the need for
multiple MPLS operations and always tell the kernel to forward such flows
to userspace for handling (userspace supports up to 3 or 4 IIRC). This
would be consistent with what you have shown, and should still work
correctly.

Regarding the flow that fails to be installed, that looks like a bug. I
wouldn't expect userspace to generate a flow that looks like this, given
that the kernel only supports 1 level of MPLS. Rather, I would have
expected it to either generate a flow sending to userspace, or something
more like "actions=pop_mpls(...),recirc(...)" plus another flow with
"recirc_id(...),..., actions=pop_mpls(...),4".

Does basic connectivity work at all with two MPLS labels? Can you
investigate each part, double push vs double pop separately and see whether
the packets are modified as you would expect?

On 20 November 2014 03:26, kunapaneni prashanth <prask9 at gmail.com> wrote:

> Hi,
>  i am using the latest openvswitch code to try out mpls. Can someone
> help me with this.
>
> with single lable push and pop, i am able to ping between two hosts
> and can see kernel datapath entries installed.
>
>  Now, when testing with two labels, i am running into a problem. I
> don't see any datapath entries being installed and all packets are
> re-directed to userspace.
>
>
> also, in Rx direction, where i had to pop two mpls labels, flow
> installation is failing.
>
> i installed following flows
>
> ovs-ofctl  add-flow br0 "table=0,priority=99,dl_type=0x806,actions=normal"
>
> ovs-ofctl  add-flow br0
> "table=0,priority=98,in_port=2,actions=resubmit(,2)"
> ovs-ofctl  add-flow br0
> "table=2,priority=97,in_port=2,actions=push_mpls:0x8847,resubmit(,3)"
> ovs-ofctl  add-flow br0
>
> "table=3,priority=97,in_port=2,dl_type=0x8847,actions=push_mpls:0x8847,set_mpls_label:10,output=1"
>
> ovs-ofctl  add-flow br0
>
> "table=0,priority=98,in_port=1,dl_type=0x8847,mpls_bos=0,actions=pop_mpls:0x8847,resubmit(,1)"
> ovs-ofctl  add-flow br0
>
> "table=1,priority=98,in_port=1,dl_type=0x8847,mpls_bos=1,actions=pop_mpls:0x800,output:2"
>
>
>
> i can see from packets counts that these flows are being hit.
>
>
> [root at localhost openvswitch-2.3.90]# ovs-ofctl dump-flows br0
> NXST_FLOW reply (xid=0x4):
>  cookie=0x0, duration=419.658s, table=0, n_packets=0, n_bytes=0,
> idle_age=419, priority=98,mpls,in_port=1,mpls_bos=0
> actions=pop_mpls:0x8847,resubmit(,1)
>  cookie=0x0, duration=419.674s, table=0, n_packets=418, n_bytes=40964,
> idle_age=0, priority=98,in_port=2 actions=resubmit(,2)
>  cookie=0x0, duration=419.680s, table=0, n_packets=25, n_bytes=1266,
> idle_age=6, priority=99,arp actions=NORMAL
>  cookie=0x0, duration=419.651s, table=1, n_packets=0, n_bytes=0,
> idle_age=419, priority=98,mpls,in_port=1,mpls_bos=1
> actions=pop_mpls:0x0800,output:2
>  cookie=0x0, duration=419.669s, table=2, n_packets=418, n_bytes=40964,
> idle_age=0, priority=97,in_port=2
> actions=push_mpls:0x8847,resubmit(,3)
>  cookie=0x0, duration=419.664s, table=3, n_packets=418, n_bytes=40964,
> idle_age=0, priority=97,mpls,in_port=2
> actions=push_mpls:0x8847,set_mpls_label(10),output:1
>
>
> kernel datapath has following flows
>
> [root at localhost openvswitch-2.3.90]# ovs-dpctl dump-flows
> recirc_id(0),in_port(4),eth_type(0x0800),ipv4(tos=0/0xfc,ttl=64,frag=no),
> packets:164, bytes:16072, used:0.619s,
> actions:userspace(pid=4294938863,slow_path(action))
>
>
>
> i looked into /var/log/messages and see following flow entry failing
> to installing for Rx direction.
>
>
> Nov 20 16:51:50 localhost ovs-vswitchd:
> ovs|23834|dpif(handler6)|WARN|system at ovs-system: failed to put[create]
> (Invalid argument)
>
> recirc_id(0),dp_hash(0/0),skb_priority(0/0),in_port(2),skb_mark(0/0),eth(src=00:27:0e:0b:cf:f8/00:00:00:00:00:00,dst=52:54:00:b1:94:22/00:00:00:00:00:00),eth_type(0x8847),mpls(label=10/0x0,tc=0/0,ttl=64/0x0,bos=0/1),
> actions:pop_mpls(eth_type=0x8847),pop_mpls(eth_type=0x800),4
>
>
>
>
> any pointers on where i am going wrong will help.
>
> Thank you.
> _______________________________________________
> discuss mailing list
> discuss at openvswitch.org
> http://openvswitch.org/mailman/listinfo/discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20141120/c05881db/attachment-0002.html>


More information about the discuss mailing list