summaryrefslogtreecommitdiffstats
path: root/sys/netinet/ip_fastfwd.c
diff options
context:
space:
mode:
authorandre <andre@FreeBSD.org>2004-08-11 10:42:59 +0000
committerandre <andre@FreeBSD.org>2004-08-11 10:42:59 +0000
commitd03ce8b4a3fcc801ff26a065d71e1ff5388cf825 (patch)
treed7cbfd99b0871b22e282b823cf253e5752f7ce5b /sys/netinet/ip_fastfwd.c
parent59569e26479c5835c006f34e99cc472a2d1c23a3 (diff)
downloadFreeBSD-src-d03ce8b4a3fcc801ff26a065d71e1ff5388cf825.zip
FreeBSD-src-d03ce8b4a3fcc801ff26a065d71e1ff5388cf825.tar.gz
Make IP fastforwarding ALTQ-aware by adding the input traffic conditioner
check and disabling the early output interface queue length check.
Diffstat (limited to 'sys/netinet/ip_fastfwd.c')
-rw-r--r--sys/netinet/ip_fastfwd.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/netinet/ip_fastfwd.c b/sys/netinet/ip_fastfwd.c
index 771c722..6b6d24d 100644
--- a/sys/netinet/ip_fastfwd.c
+++ b/sys/netinet/ip_fastfwd.c
@@ -283,6 +283,14 @@ ip_fastforward(struct mbuf *m)
goto drop;
}
+#ifdef ALTQ
+ /*
+ * Is packet dropped by traffic conditioner?
+ */
+ if (altq_input != NULL && (*altq_input)(m, AF_INET) == 0)
+ return 1;
+#endif
+
/*
* Step 2: fallback conditions to normal ip_input path processing
*/
@@ -669,6 +677,7 @@ droptoours: /* Used for DIVERT */
goto consumed;
}
+#ifndef ALTQ
/*
* Check if there is enough space in the interface queue
*/
@@ -678,6 +687,7 @@ droptoours: /* Used for DIVERT */
/* would send source quench here but that is depreciated */
goto drop;
}
+#endif
/*
* Check if media link state of interface is not down
OpenPOWER on IntegriCloud