Hi,

we are not able to push MPLS labels (even a single one) in Ubuntu 14.04.1 LTS, with kernel 3.13.0-34 using open vswitch 2.390 (master branch)

previously it was working, for example we have no problem with kernel 3.8.0-35 (in which we were also able to push multiple MPLS label)

as a simple test scenario, we use a mininet topology with 2 hosts and one ovs-kernel switch

H1 ----> SW -----> H2

SW is supposed to take ingress traffic from H1, push one MPLS label and forward to H2

the rules are installed in OVS and visible with ofctl, but when a packet enters the switch from H1, the packet is not forwarded (while the statistics are increased) and the following error is logged in ovs-vswitchd log:

2015-06-16T11:38:08.448Z|00179|dpif(handler9)|WARN|system@ovs-system: failed to put[create] (Invalid argument) ufid:a89d1ff5-a023-42e2-ac9b-ba9c2ce87b06 skb_priority(0/0), in_port(2),skb_mark(0/0),eth(src=a6:5d:18:53:e0:2e/00:00:00:00:00:00, dst=fa:d7:84:15:da:ff/00:00:00:00:00:00), eth_type(0x0800), ipv4(src=10.0.0.1/0.0.0.0,dst=10.0.0.2/0.0.0.0,proto=1/0,tos=0/0xfc, ttl=64,frag=no), icmp(type=8/0,code=0/0), actions:push_mpls(label=524296, tc=0, ttl=64, bos=1, eth_type=0x8847),1

2015-06-16T11:38:08.448Z|00180|dpif(handler9)|WARN|system@ovs-system: execute push_mpls(label=524296,tc=0,ttl=64,bos=1,eth_type=0x8847), 1 failed (Invalid argument) on packet icmp, vlan_tci=0x0000, dl_src=a6:5d:18:53:e0:2e, dl_dst=fa:d7:84:15:da:ff, nw_src=10.0.0.1, nw_dst=10.0.0.2, nw_tos=0, nw_ecn=0, nw_ttl=64, icmp_type=8,i cmp_code=0 icmp_csum:a411

the mininet script we use to reproduce the problem is attached below

thank you for your support

ciao
Stefano e Pier Luigi


--
*******************************************************************
Stefano Salsano
Professore Associato
Dipartimento Ingegneria Elettronica
Universita' di Roma Tor Vergata
Via del Politecnico, 1 - 00133 Roma - ITALY

http://netgroup.uniroma2.it/Stefano_Salsano/

E-mail  : stefano.sals...@uniroma2.it
Cell.   : +39 320 4307310
Office  : (Tel.) +39 06 72597770  (Fax.) +39 06 72597435
*******************************************************************

#!/usr/bin/python

import subprocess

from mininet.net import Mininet
from mininet.node import Host, OVSKernelSwitch, Node
from mininet.cli import CLI
from mininet.log import lg, info

def setup():

        lg.setLogLevel('info')

        net = Mininet(switch=OVSKernelSwitch, build=False, autoStaticArp=True )

        host1 = net.addHost("h1")
        host2 = net.addHost("h2")

        peo1 = net.addSwitch("peo1")

        net.addLink(host1, peo1)# N/A | 1
        net.addLink(host2, peo1)# N/A | 2

        net.start()

        #PEO1 Configuration
        root = Node( 'root', inNamespace=False )
        root.cmd('ovs-vsctl --no-wait set bridge %s protocols=OpenFlow13' 
%(peo1.name))
        root.cmd('ovs-ofctl -O OpenFlow13 add-flow %s 
"table=0,hard_timeout=0,priority=32768,in_port=1,eth_type=0x800,actions=push_mpls:0x8847,set_field:524296->mpls_lab$
        root.cmd('ovs-ofctl -O OpenFlow13 add-flow %s 
"table=1,hard_timeout=0,priority=32768,in_port=1,eth_type=0x8847,mpls_label=524296,action=output:2"'
 %(peo1.name))

        CLI(net)
        net.stop()
        subprocess.call(["sudo", "mn", "-c"], stdout=None, stderr=None)


if __name__ == '__main__':
        setup()


_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to