summaryrefslogtreecommitdiffstats
path: root/sys/netinet
diff options
context:
space:
mode:
authorluigi <luigi@FreeBSD.org>2010-03-24 15:16:59 +0000
committerluigi <luigi@FreeBSD.org>2010-03-24 15:16:59 +0000
commit9cd70e53235165dea00bcad0df513c8fbaeb9b53 (patch)
tree54f618a4f85f5eb8bbd4fa12c6781c9aca4e06c1 /sys/netinet
parent43835a6341a297f901dfd27338223f82f6e34fbd (diff)
downloadFreeBSD-src-9cd70e53235165dea00bcad0df513c8fbaeb9b53.zip
FreeBSD-src-9cd70e53235165dea00bcad0df513c8fbaeb9b53.tar.gz
Honor ip.fw.one_pass when a packet comes out of a pipe without being delayed.
I forgot to handle this case when i did the mtag cleanup three months ago. PR: 145004
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/ipfw/ip_dn_io.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/netinet/ipfw/ip_dn_io.c b/sys/netinet/ipfw/ip_dn_io.c
index 70f14ca..ae168ce 100644
--- a/sys/netinet/ipfw/ip_dn_io.c
+++ b/sys/netinet/ipfw/ip_dn_io.c
@@ -762,7 +762,11 @@ dummynet_io(struct mbuf **m0, int dir, struct ip_fw_args *fwa)
*
*/
if (/*dn_cfg.io_fast &&*/ m == *m0 && (dir & PROTO_LAYER2) == 0 ) {
- /* fast io */
+ /* fast io, rename the tag * to carry reinject info. */
+ struct m_tag *tag = m_tag_first(m);
+
+ tag->m_tag_cookie = MTAG_IPFW_RULE;
+ tag->m_tag_id = 0;
io_pkt_fast++;
if (m->m_nextpkt != NULL) {
printf("dummynet: fast io: pkt chain detected!\n");
OpenPOWER on IntegriCloud