Check that mpls has been enabled on the input interface, lost in rev 1.66
authorjca <jca@openbsd.org>
Fri, 12 Jan 2018 06:57:56 +0000 (06:57 +0000)
committerjca <jca@openbsd.org>
Fri, 12 Jan 2018 06:57:56 +0000 (06:57 +0000)
While here fix under MPLS_DEBUG.  ok dlg@

sys/netmpls/mpls_input.c

index 68f333a..693247b 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: mpls_input.c,v 1.67 2018/01/10 00:05:06 dlg Exp $     */
+/*     $OpenBSD: mpls_input.c,v 1.68 2018/01/12 06:57:56 jca Exp $     */
 
 /*
  * Copyright (c) 2008 Claudio Jeker <claudio@openbsd.org>
@@ -63,6 +63,11 @@ mpls_input(struct ifnet *ifp, struct mbuf *m)
        uint8_t ttl;
        int hasbos;
 
+       if (!ISSET(ifp->if_xflags, IFXF_MPLS)) {
+               m_freem(m);
+               return;
+       }
+
        /* drop all broadcast and multicast packets */
        if (m->m_flags & (M_BCAST | M_MCAST)) {
                m_freem(m);
@@ -79,7 +84,7 @@ mpls_input(struct ifnet *ifp, struct mbuf *m)
 #ifdef MPLS_DEBUG
        printf("mpls_input: iface %s label=%d, ttl=%d BoS %d\n",
            ifp->if_xname, MPLS_LABEL_GET(shim->shim_label),
-           MPLS_TTL_GET(shim->shim_label,
+           MPLS_TTL_GET(shim->shim_label),
            MPLS_BOS_ISSET(shim->shim_label));
 #endif