[ovs-dev] MPLS Label Stacking - problems with popping

GEMELOS, STEVEN M (STEVEN M) gemelos at research.att.com
Thu Apr 10 21:14:39 UTC 2014


I have had a single MPLS label system working with OVS, now I am trying to
stack multiple labels and am having issues maybe you all have some insightŠ

here¹s the setup:

H1 ‹ S1 ‹ S2 ‹ S3 ‹ H3
          |
          H2

S1 ­ S2 has MPLS label  12, and S2 ­ S1 has MPLS label 21
S2 ­ S3 has MPLS label  23, and S3 ­ S2 has MPLS label 32

Now traffic between hosts H1-H2 with a single label works without issue.
Same for H2 ­ H3.

The rules on S1 and S2 that make this work are:

S1
ovs-ofctl add-flow br
in_port=local,dl_type=0x0800,nw_dst=172.16.3.8/29,actions=push_mpls:0x8847,
set_mpls_label:12,output:1
ovs-ofctl add-flow br
in_port=1,dl_type=0x8847,mpls_bos=1,actions=pop_mpls:0x0800,output:local


S2
ovs-ofctl add-flow br
in_port=local,dl_type=0x0800,nw_dst=172.16.3.0/29,actions=push_mpls:0x8847,
set_mpls_label:21,output:1
ovs-ofctl add-flow br
in_port=1,dl_type=0x8847,mpls_bos=1,actions=pop_mpls:0x0800,output:local



So, now I want to connect between H1 and H3 sticking 2 MPLS Labels ‹

On S1 I added the Rule:

ovs-ofctl add-flow br
in_port=local,dl_type=0x0800,nw_dst=172.16.3.16/29,actions=push_mpls:0x8847
,set_mpls_label:23,set_mpls_label:12,output:1

And on S3 I added the Rule:

ovs-ofctl add-flow br
in_port=local,dl_type=0x0800,nw_dst=172.16.3.0/29,actions=push_mpls:0x8847,
set_mpls_label:21,set_mpls_label:32,output:1


On s2 I am trying to use the following rule, to pop and forward,

ovs-ofctl add-flow br
in_port=1,dl_type=0x8847,mpls_bos=0,actions=pop_mpls:0x8847,output:2
ovs-ofctl add-flow br
in_port=2,dl_type=0x8847,mpls_bos=0,actions=pop_mpls:0x8847,output:1

But I am getting errors when trying to use the action ³pop_mpls:0x8847²

OFPT_ERROR (xid=0x4): OFPBAC_BAD_ARGUMENT
NXT_FLOW_MOD (xid=0x4):
(***truncated to 64 bytes from 104***)
00000000  01 04 00 68 00 00 00 04-00 00 23 20 00 00 00 0d |...h......#
....|
00000010  00 00 00 00 00 00 00 00-00 00 00 00 00 00 80 00
|................|
00000020  ff ff ff ff ff ff 00 00-00 11 00 00 00 00 00 00
|................|
00000030  00 00 00 02 00 01 00 00-06 02 88 47 80 00 48 01
|...........G..H.|


I can use the action ³pop_mpls:0x8840² or ³pop_mpls:0x0800² - I can set
the DL_Type to anything except MPLS 0x8847 or 0x8848.

What am I missing?


Thanks
Steven




More information about the dev mailing list