diff options
author | mlaier <mlaier@FreeBSD.org> | 2004-02-25 19:55:29 +0000 |
---|---|---|
committer | mlaier <mlaier@FreeBSD.org> | 2004-02-25 19:55:29 +0000 |
commit | 1504165dce30978b55fb5992d94ebc8914ced705 (patch) | |
tree | ef732081c31aa5924d309022a0341c52a90908c0 /sys/net | |
parent | 333bc770a3745a8206d3afcea031c505caddf9d4 (diff) | |
download | FreeBSD-src-1504165dce30978b55fb5992d94ebc8914ced705.zip FreeBSD-src-1504165dce30978b55fb5992d94ebc8914ced705.tar.gz |
Re-remove MT_TAGs. The problems with dummynet have been fixed now.
Tested by: -current, bms(mentor), me
Approved by: bms(mentor), sam
Diffstat (limited to 'sys/net')
-rw-r--r-- | sys/net/bridge.c | 13 | ||||
-rw-r--r-- | sys/net/if_ethersubr.c | 18 |
2 files changed, 8 insertions, 23 deletions
diff --git a/sys/net/bridge.c b/sys/net/bridge.c index a444f1c..74f6f00 100644 --- a/sys/net/bridge.c +++ b/sys/net/bridge.c @@ -920,14 +920,10 @@ bdg_forward(struct mbuf *m0, struct ifnet *dst) DDB(quad_t ticks; ticks = rdtsc();) - args.rule = NULL; /* did we match a firewall rule ? */ - /* Fetch state from dummynet tag, ignore others */ - for (;m0->m_type == MT_TAG; m0 = m0->m_next) - if (m0->_m_tag_id == PACKET_TAG_DUMMYNET) { - args.rule = ((struct dn_pkt *)m0)->rule; - shared = 0; /* For sure this is our own mbuf. */ - } - if (args.rule == NULL) + args.rule = ip_dn_claim_rule(m0); + if (args.rule) + shared = 0; /* For sure this is our own mbuf. */ + else bdg_thru++; /* count 1st time through bdg_forward */ /* @@ -1046,7 +1042,6 @@ bdg_forward(struct mbuf *m0, struct ifnet *dst) args.m = m0; /* the packet we are looking at */ args.oif = NULL; /* this is an input packet */ - args.divert_rule = 0; /* we do not support divert yet */ args.next_hop = NULL; /* we do not support forward yet */ args.eh = &save_eh; /* MAC header for bridged/MAC packets */ i = ip_fw_chk_ptr(&args); diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c index 567b0b7..8df0cc4 100644 --- a/sys/net/if_ethersubr.c +++ b/sys/net/if_ethersubr.c @@ -322,12 +322,7 @@ bad: if (m != NULL) int ether_output_frame(struct ifnet *ifp, struct mbuf *m) { - struct ip_fw *rule = NULL; - - /* Extract info from dummynet tag, ignore others */ - for (; m->m_type == MT_TAG; m = m->m_next) - if (m->m_flags == PACKET_TAG_DUMMYNET) - rule = ((struct dn_pkt *)m)->rule; + struct ip_fw *rule = ip_dn_claim_rule(m); if (rule == NULL && BDG_ACTIVE(ifp)) { /* @@ -397,7 +392,6 @@ ether_ipfw_chk(struct mbuf **m0, struct ifnet *dst, args.m = m; /* the packet we are looking at */ args.oif = dst; /* destination, if any */ - args.divert_rule = 0; /* we do not support divert yet */ args.rule = *rule; /* matching rule to restart */ args.next_hop = NULL; /* we do not support forward yet */ args.eh = &save_eh; /* MAC header for bridged/MAC packets */ @@ -611,14 +605,10 @@ ether_demux(struct ifnet *ifp, struct mbuf *m) #if defined(NETATALK) struct llc *l; #endif - struct ip_fw *rule = NULL; + struct ip_fw *rule = ip_dn_claim_rule(m); - /* Extract info from dummynet tag, ignore others */ - for (;m->m_type == MT_TAG; m = m->m_next) - if (m->m_flags == PACKET_TAG_DUMMYNET) { - rule = ((struct dn_pkt *)m)->rule; - ifp = m->m_next->m_pkthdr.rcvif; - } + if (rule != NULL) + ifp = m->m_pkthdr.rcvif; KASSERT(ifp != NULL, ("ether_demux: NULL interface pointer")); |