On Thu, Jul 16, 2015 at 02:38:45PM -0300, Rafael Zalamena wrote: > On Mon, May 25, 2015 at 05:44:09PM +0300, [email protected] wrote: > > >Synopsis: mpls provider doesn't forward packets > > >Category: networking > > >Environment: > > System : OpenBSD 5.7 > > Details : OpenBSD 5.7-current (GENERIC.MP) #999: Thu May 21 > > 15:37:37 MDT 2015 > > > > [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP > > > > Architecture: OpenBSD.amd64 > > Machine : amd64 > > >Description: > > I'm trying to make mpls test network like described in > > http://2011.eurobsdcon.org/papers/jeker/MPLS.pdf > > but in openbsd 5.7 command "ifconfig mpex mplslabel xxx" was not > > working so i switched to current > > and faced with new problem: > > packets with mpls tag not forwarded at all on provider machines. > > counter in "netstat -r" shows that number of forwarded packets increase > > in appropriate rule but > > packets couldn't be detected via tcpdump on outgoing interface. > > >How-To-Repeat: > > build test network like in pdf. dump packets of provider on interface > > connected to provider edge > > than dump packets on interface connected to other provider. > > >Fix: > > Hi, > > MPLS routing was broken when multiple labels where being sent, you may want > to try this patch on the providers hosts: > > Index: net/if_ethersubr.c > =================================================================== > RCS file: /cvs/src/sys/net/if_ethersubr.c,v > retrieving revision 1.216 > diff -u -p -r1.216 if_ethersubr.c > --- net/if_ethersubr.c 2 Jul 2015 23:15:03 -0000 1.216 > +++ net/if_ethersubr.c 16 Jul 2015 17:25:26 -0000 > @@ -227,6 +227,7 @@ ether_output(struct ifnet *ifp, struct m > sizeof(edst)); > break; > case AF_INET: > + case AF_MPLS: > error = arpresolve(ifp, rt, m, dst, edst); > if (error) > return (error == EAGAIN ? 0 : error); >
OK claudio@ -- :wq Claudio
