Hi Joe,
 Thank you for clarifying.

I did a search and i found following prints  in ovs-vswitchd.log

 2014-11-20T08:00:42.696Z|00006|ofproto_dpif|INFO|system@ovs-system:
Datapath supports recirculation
2014-11-20T08:00:42.696Z|00007|ofproto_dpif|INFO|system@ovs-system:
MPLS label stack length probed as 1


So while pushing labels, datapath is forwarding to userspace.
Userspace is able to push two labels and forward the packet. Tcpdump
shows packets being forwarding with two labels.

 But the ping fails between two hosts due to failure in poping two
labels. i see following logs when the host receives a packet with two
labels( i am using the same flows as i sent in first mail)


2014-11-21T06:42:03.943Z|01177|dpif(handler7)|WARN|system@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
2014-11-21T06:42:03.943Z|01178|dpif(handler7)|WARN|system@ovs-system:
execute pop_mpls(eth_type=0x8847),pop_mpls(eth_type=0x800),4 failed
(Invalid argument) on packet
mpls,in_port=0,vlan_tci=0x0000,dl_src=00:27:0e:0b:cf:f8,dl_dst=52:54:00:b1:94:22,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=0,mpls_lse1=45376


[root@localhost openvswitch-2.3.90]# tcpdump -i eth1 -vv
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size
65535 bytes
12:34:11.928229 MPLS (label 10 (rsvd), exp 0, ttl 64)
(label 11 (rsvd), exp 0, [S], ttl 64)
IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
    10.10.10.1 > 10.10.10.2: ICMP echo request, id 43302, seq 1336, length 64



Looks like Userspace  fails to execute the actions. So is this a bug?


Thanks


















On Fri, Nov 21, 2014 at 3:11 AM, Joe Stringer <[email protected]> wrote:
> You'll probably find some lines like this in your ovs-vswitchd.log:
> 2014-11-19T22:19:43.069Z|00007|ofproto_dpif|WARN|system@ovs-system: MPLS
> stack length feature probe failed (Numerical result out of range)
> 2014-11-19T22:19:43.069Z|00008|ofproto_dpif|INFO|system@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 <[email protected]> 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@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@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@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
>> [email protected]
>> http://openvswitch.org/mailman/listinfo/discuss
>
>
_______________________________________________
discuss mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to