Revert 1.353, this breaks mpe(4). Also it seems not complete since rt_ifa_del
authorclaudio <claudio@openbsd.org>
Wed, 29 Nov 2017 19:15:48 +0000 (19:15 +0000)
committerclaudio <claudio@openbsd.org>
Wed, 29 Nov 2017 19:15:48 +0000 (19:15 +0000)
still had this hack in. This needs to be revisted and better understood.
It may be needed to add a mplsrdomain to mpe(4) but MPLS only in the rtable 0
is hardcoded in more places and we should fix them all.
OK mpi@

sys/net/route.c

index d766f14..3d0d662 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: route.c,v 1.367 2017/09/05 10:56:04 mpi Exp $ */
+/*     $OpenBSD: route.c,v 1.368 2017/11/29 19:15:48 claudio Exp $     */
 /*     $NetBSD: route.c,v 1.14 1996/02/13 22:00:46 christos Exp $      */
 
 /*
@@ -1028,8 +1028,11 @@ rt_ifa_add(struct ifaddr *ifa, int flags, struct sockaddr *dst)
        info.rti_info[RTAX_LABEL] = rtlabel_id2sa(ifp->if_rtlabelid, &sa_rl);
 
 #ifdef MPLS
-       if ((flags & RTF_MPLS) == RTF_MPLS)
+       if ((flags & RTF_MPLS) == RTF_MPLS) {
                info.rti_mpls = MPLS_OP_POP;
+               /* MPLS routes only exist in rdomain 0 */
+               rtableid = 0;
+       }
 #endif /* MPLS */
 
        if ((flags & RTF_HOST) == 0)