svn commit: r250523 - in head/sys: net netinet
Hiroki Sato
hrs at FreeBSD.org
Sat May 11 19:05:39 UTC 2013
Author: hrs
Date: Sat May 11 19:05:38 2013
New Revision: 250523
URL: http://svnweb.freebsd.org/changeset/base/250523
Log:
Add IFF_MONITOR support to gre(4).
Tested by: Chip Marshall
MFC after: 1 week
Modified:
head/sys/net/if_gre.c
head/sys/netinet/ip_gre.c
Modified: head/sys/net/if_gre.c
==============================================================================
--- head/sys/net/if_gre.c Sat May 11 18:06:51 2013 (r250522)
+++ head/sys/net/if_gre.c Sat May 11 19:05:38 2013 (r250523)
@@ -341,6 +341,12 @@ gre_output(struct ifnet *ifp, struct mbu
if (bpf_peers_present(ifp->if_bpf))
bpf_mtap2(ifp->if_bpf, &af, sizeof(af), m);
+ if ((ifp->if_flags & IFF_MONITOR) != 0) {
+ m_freem(m);
+ error = ENETDOWN;
+ goto end;
+ }
+
m->m_flags &= ~(M_BCAST|M_MCAST);
if (sc->g_proto == IPPROTO_MOBILE) {
Modified: head/sys/netinet/ip_gre.c
==============================================================================
--- head/sys/netinet/ip_gre.c Sat May 11 18:06:51 2013 (r250522)
+++ head/sys/netinet/ip_gre.c Sat May 11 19:05:38 2013 (r250523)
@@ -205,6 +205,11 @@ gre_input2(struct mbuf *m ,int hlen, u_c
bpf_mtap2(GRE2IFP(sc)->if_bpf, &af, sizeof(af), m);
}
+ if ((GRE2IFP(sc)->if_flags & IFF_MONITOR) != 0) {
+ m_freem(m);
+ return(NULL);
+ }
+
m->m_pkthdr.rcvif = GRE2IFP(sc);
netisr_queue(isr, m);
@@ -287,6 +292,11 @@ gre_mobile_input(struct mbuf *m, int hle
bpf_mtap2(GRE2IFP(sc)->if_bpf, &af, sizeof(af), m);
}
+ if ((GRE2IFP(sc)->if_flags & IFF_MONITOR) != 0) {
+ m_freem(m);
+ return;
+ }
+
m->m_pkthdr.rcvif = GRE2IFP(sc);
netisr_queue(NETISR_IP, m);
More information about the svn-src-all
mailing list