[ovs-dev] [ovs discussion]MPLS tunnel protocol support in OVS

Jesse Gross jesse at kernel.org
Tue Feb 2 23:23:56 UTC 2016


On Mon, Feb 1, 2016 at 8:02 PM, zhangyali (D) <zhangyali369 at huawei.com> wrote:
> Hi all,
>
> I have noticed that OVS support multiple tunneling protocols, such as, GRE, VXLAN, etc. I am not sure if the MPLS has been also supported now (could not find it ...). Since the openflow protocol has support the corresponding actions of MPLS, such as, push_mpls, pop_mpls. I have try to test it.
>
> The topology is  h1-s1-s2-h2
>
> root at ubuntu-14:~/test-ovs# ovs-vsctl show
> 49c4a7af-3a27-4ef1-8dc3-f1f90d5c19ce
>     Bridge "s2"
>         Port "s2"
>             Interface "s2"
>                 type: internal
>         Port "s2-eth1"
>             Interface "s2-eth1"
>         Port "s2-eth2"
>             Interface "s2-eth2"
>     Bridge "s1"
>         Port "s1-eth2"
>             Interface "s1-eth2"
>         Port "s1-eth1"
>             Interface "s1-eth1"
>         Port "s1"
>             Interface "s1"
>                 type: internal
>     ovs_version: "2.0.1"
> The ip address of h1 is 10.0.0.1/24, and the ip address of h2 is 10.0.0.2/24.
>
> The flow-table is as below.
> root at ubuntu-14:~/test-ovs# ovs-ofctl dump-flows s1
> NXST_FLOW reply (xid=0x4):
> cookie=0x0, duration=37.61s, table=0, n_packets=0, n_bytes=0, idle_age=37, in_port=1 actions=push_mpls:0x8847,load:0x1->OXM_OF_MPLS_LABEL[],output:2
> cookie=0x0, duration=15.517s, table=0, n_packets=0, n_bytes=0, idle_age=15, in_port=2 actions=output:1
> cookie=0x0, duration=52.027s, table=0, n_packets=0, n_bytes=0, idle_age=52, priority=0 actions=NORMAL
> root at ubuntu-14:~/test-ovs# ovs-ofctl dump-flows s2
> NXST_FLOW reply (xid=0x4):
> cookie=0x0, duration=9.759s, table=0, n_packets=0, n_bytes=0, idle_age=9, in_port=1 actions=output:2
> cookie=0x0, duration=37.555s, table=0, n_packets=0, n_bytes=0, idle_age=37, in_port=2 actions=pop_mpls:0x0800,output:1
> cookie=0x0, duration=57.217s, table=0, n_packets=0, n_bytes=0, idle_age=57, priority=0 actions=NORMAL
>
> But the ping package from h1 to h2 is unreachable.
>
> If I configure something wrong, or the ovs could not support mpls? Look forwarding to your answer. Thanks.

Are you handling ARP on the endpoints? OVS exposes Ethernet interfaces
so this will send ARP in and mark it as IP on the way out. I would
also use tcpdump on the various devices to make sure that the traffic
matches what you would expect.

Finally, the version of OVS you are using is relatively old and I
think there were some important bug fixes to MPLS since then, so I
would recommend upgrading to the newest version if you still can't get
it to work.



More information about the dev mailing list