diff options
author | bz <bz@FreeBSD.org> | 2011-07-03 16:08:38 +0000 |
---|---|---|
committer | bz <bz@FreeBSD.org> | 2011-07-03 16:08:38 +0000 |
commit | 300a95bf76e162113e6631c5538072e8a1aec2bb (patch) | |
tree | 5b26fb6f45285f3368af628d56f5ce11128abe81 /sys/net | |
parent | cf260e73d64c6f9645f9836a1a5e0f93061ae882 (diff) | |
download | FreeBSD-src-300a95bf76e162113e6631c5538072e8a1aec2bb.zip FreeBSD-src-300a95bf76e162113e6631c5538072e8a1aec2bb.tar.gz |
Tag mbufs of all incoming frames or packets with the interface's FIB
setting (either default or if supported as set by SIOCSIFFIB, e.g.
from ifconfig).
Submitted by: Alexander V. Chernikov (melifaro ipfw.ru)
Reviewed by: julian
MFC after: 2 weeks
Diffstat (limited to 'sys/net')
-rw-r--r-- | sys/net/if_arcsubr.c | 1 | ||||
-rw-r--r-- | sys/net/if_atmsubr.c | 1 | ||||
-rw-r--r-- | sys/net/if_ethersubr.c | 2 | ||||
-rw-r--r-- | sys/net/if_fddisubr.c | 1 | ||||
-rw-r--r-- | sys/net/if_fwsubr.c | 1 | ||||
-rw-r--r-- | sys/net/if_gif.c | 1 | ||||
-rw-r--r-- | sys/net/if_iso88025subr.c | 1 | ||||
-rw-r--r-- | sys/net/if_spppfr.c | 2 | ||||
-rw-r--r-- | sys/net/if_spppsubr.c | 1 | ||||
-rw-r--r-- | sys/net/if_stf.c | 1 | ||||
-rw-r--r-- | sys/net/if_tun.c | 1 |
11 files changed, 13 insertions, 0 deletions
diff --git a/sys/net/if_arcsubr.c b/sys/net/if_arcsubr.c index 0e23b24..2a58d5a 100644 --- a/sys/net/if_arcsubr.c +++ b/sys/net/if_arcsubr.c @@ -608,6 +608,7 @@ arc_input(struct ifnet *ifp, struct mbuf *m) m_freem(m); return; } + M_SETFIB(m, ifp->if_fib); netisr_dispatch(isr, m); } diff --git a/sys/net/if_atmsubr.c b/sys/net/if_atmsubr.c index d8a3313..fb63fd5 100644 --- a/sys/net/if_atmsubr.c +++ b/sys/net/if_atmsubr.c @@ -332,6 +332,7 @@ atm_input(struct ifnet *ifp, struct atm_pseudohdr *ah, struct mbuf *m, return; } } + M_SETFIB(m, ifp->if_fib); netisr_dispatch(isr, m); } diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c index be90f5a..aa8113b 100644 --- a/sys/net/if_ethersubr.c +++ b/sys/net/if_ethersubr.c @@ -692,6 +692,8 @@ ether_input_internal(struct ifnet *ifp, struct mbuf *m) m_adj(m, ETHER_VLAN_ENCAP_LEN); } + M_SETFIB(m, ifp->if_fib); + /* Allow ng_ether(4) to claim this frame. */ if (IFP2AC(ifp)->ac_netgraph != NULL) { KASSERT(ng_ether_input_p != NULL, diff --git a/sys/net/if_fddisubr.c b/sys/net/if_fddisubr.c index 13fdd72..d98029c 100644 --- a/sys/net/if_fddisubr.c +++ b/sys/net/if_fddisubr.c @@ -550,6 +550,7 @@ fddi_input(ifp, m) ifp->if_noproto++; goto dropanyway; } + M_SETFIB(m, ifp->if_fib); netisr_dispatch(isr, m); return; diff --git a/sys/net/if_fwsubr.c b/sys/net/if_fwsubr.c index eac049a..7c57feb 100644 --- a/sys/net/if_fwsubr.c +++ b/sys/net/if_fwsubr.c @@ -627,6 +627,7 @@ firewire_input(struct ifnet *ifp, struct mbuf *m, uint16_t src) return; } + M_SETFIB(m, ifp->if_fib); netisr_dispatch(isr, m); } diff --git a/sys/net/if_gif.c b/sys/net/if_gif.c index 4a8df34..2b6b2b4 100644 --- a/sys/net/if_gif.c +++ b/sys/net/if_gif.c @@ -609,6 +609,7 @@ gif_input(m, af, ifp) ifp->if_ipackets++; ifp->if_ibytes += m->m_pkthdr.len; + M_SETFIB(m, ifp->if_fib); netisr_dispatch(isr, m); } diff --git a/sys/net/if_iso88025subr.c b/sys/net/if_iso88025subr.c index 933065e..7961df0 100644 --- a/sys/net/if_iso88025subr.c +++ b/sys/net/if_iso88025subr.c @@ -680,6 +680,7 @@ iso88025_input(ifp, m) break; } + M_SETFIB(m, ifp->if_fib); netisr_dispatch(isr, m); return; diff --git a/sys/net/if_spppfr.c b/sys/net/if_spppfr.c index ae4f959..ca84656 100644 --- a/sys/net/if_spppfr.c +++ b/sys/net/if_spppfr.c @@ -280,6 +280,8 @@ drop: ++ifp->if_ierrors; if (! (ifp->if_flags & IFF_UP)) goto drop; + M_SETFIB(m, ifp->if_fib); + /* Check queue. */ if (netisr_queue(isr, m)) { /* (0) on success. */ if (debug) diff --git a/sys/net/if_spppsubr.c b/sys/net/if_spppsubr.c index 3f0faaf..363d9aa 100644 --- a/sys/net/if_spppsubr.c +++ b/sys/net/if_spppsubr.c @@ -737,6 +737,7 @@ sppp_input(struct ifnet *ifp, struct mbuf *m) goto drop; SPPP_UNLOCK(sp); + M_SETFIB(m, ifp->if_fib); /* Check queue. */ if (netisr_queue(isr, m)) { /* (0) on success. */ if (debug) diff --git a/sys/net/if_stf.c b/sys/net/if_stf.c index 1ef5581..e32956e 100644 --- a/sys/net/if_stf.c +++ b/sys/net/if_stf.c @@ -781,6 +781,7 @@ in_stf_input(m, off) */ ifp->if_ipackets++; ifp->if_ibytes += m->m_pkthdr.len; + M_SETFIB(m, ifp->if_fib); netisr_dispatch(NETISR_IPV6, m); } diff --git a/sys/net/if_tun.c b/sys/net/if_tun.c index 49a5249..d74c9fe 100644 --- a/sys/net/if_tun.c +++ b/sys/net/if_tun.c @@ -929,6 +929,7 @@ tunwrite(struct cdev *dev, struct uio *uio, int flag) ifp->if_ibytes += m->m_pkthdr.len; ifp->if_ipackets++; CURVNET_SET(ifp->if_vnet); + M_SETFIB(m, ifp->if_fib); netisr_dispatch(isr, m); CURVNET_RESTORE(); return (0); |