summaryrefslogtreecommitdiffstats
path: root/sys/net
diff options
context:
space:
mode:
authorbz <bz@FreeBSD.org>2011-07-03 16:08:38 +0000
committerbz <bz@FreeBSD.org>2011-07-03 16:08:38 +0000
commit300a95bf76e162113e6631c5538072e8a1aec2bb (patch)
tree5b26fb6f45285f3368af628d56f5ce11128abe81 /sys/net
parentcf260e73d64c6f9645f9836a1a5e0f93061ae882 (diff)
downloadFreeBSD-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.c1
-rw-r--r--sys/net/if_atmsubr.c1
-rw-r--r--sys/net/if_ethersubr.c2
-rw-r--r--sys/net/if_fddisubr.c1
-rw-r--r--sys/net/if_fwsubr.c1
-rw-r--r--sys/net/if_gif.c1
-rw-r--r--sys/net/if_iso88025subr.c1
-rw-r--r--sys/net/if_spppfr.c2
-rw-r--r--sys/net/if_spppsubr.c1
-rw-r--r--sys/net/if_stf.c1
-rw-r--r--sys/net/if_tun.c1
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);
OpenPOWER on IntegriCloud