summaryrefslogtreecommitdiffstats
path: root/sys/net/if_mpe.c
diff options
context:
space:
mode:
authordlg <dlg@openbsd.org>2019-04-02 10:46:02 +0000
committerdlg <dlg@openbsd.org>2019-04-02 10:46:02 +0000
commitdb4e5757b257c757cec8d8fb2c0031ebfa994d76 (patch)
tree36518b93869dec2b9cc7d43cf000dff06a12d70c /sys/net/if_mpe.c
parentWhen curve25519 was added to iked, it was based on the internet-draft and (diff)
downloadwireguard-openbsd-db4e5757b257c757cec8d8fb2c0031ebfa994d76.tar.xz
wireguard-openbsd-db4e5757b257c757cec8d8fb2c0031ebfa994d76.zip
some mbuf ph_rtableid fixes
consistently set the rtabled for "outgoing" packets to the encap rdomain. use this for rtallocs in mpip too instead of assuming 0.
Diffstat (limited to 'sys/net/if_mpe.c')
-rw-r--r--sys/net/if_mpe.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/net/if_mpe.c b/sys/net/if_mpe.c
index e50d5a45930..bafe9d661bc 100644
--- a/sys/net/if_mpe.c
+++ b/sys/net/if_mpe.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_mpe.c,v 1.87 2019/03/18 03:21:20 dlg Exp $ */
+/* $OpenBSD: if_mpe.c,v 1.88 2019/04/02 10:46:02 dlg Exp $ */
/*
* Copyright (c) 2008 Pierre-Yves Ritschard <pyr@spootnik.org>
@@ -196,6 +196,9 @@ mpe_start(struct ifnet *ifp)
m->m_pkthdr.len += sizeof(struct shim_hdr);
}
#endif
+
+ m->m_pkthdr.ph_rtableid = sc->sc_rdomain;
+
mpls_output(ifp0, m, &smpls, rt);
if_put(ifp0);
rtfree(rt);
@@ -276,9 +279,6 @@ mpe_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
memcpy(mtod(m, struct sockaddr *), rt->rt_gateway, slen);
mtod(m, struct sockaddr *)->sa_len = slen; /* to be sure */
- m->m_pkthdr.ph_ifidx = ifp->if_index;
- /* XXX assumes MPLS is always in rdomain 0 */
- m->m_pkthdr.ph_rtableid = 0;
m->m_pkthdr.ph_family = dst->sa_family;
error = if_enqueue(ifp, m);