diff options
author | andre <andre@FreeBSD.org> | 2003-11-14 21:02:22 +0000 |
---|---|---|
committer | andre <andre@FreeBSD.org> | 2003-11-14 21:02:22 +0000 |
commit | de48630dfbd4851b73c7b9665f35c4b6dda706f6 (patch) | |
tree | 3e1327d0236ae8452ddd76bd0e5f5426c1bcfd14 /sys/net | |
parent | 53640e68942991cce3c7f1ab31ac16ec0de5c1d5 (diff) | |
download | FreeBSD-src-de48630dfbd4851b73c7b9665f35c4b6dda706f6.zip FreeBSD-src-de48630dfbd4851b73c7b9665f35c4b6dda706f6.tar.gz |
Introduce ip_fastforward and remove ip_flow.
Short description of ip_fastforward:
o adds full direct process-to-completion IPv4 forwarding code
o handles ip fragmentation incl. hw support (ip_flow did not)
o sends icmp needfrag to source if DF is set (ip_flow did not)
o supports ipfw and ipfilter (ip_flow did not)
o supports divert, ipfw fwd and ipfilter nat (ip_flow did not)
o returns anything it can't handle back to normal ip_input
Enable with sysctl -w net.inet.ip.fastforwarding=1
Reviewed by: sam (mentor)
Diffstat (limited to 'sys/net')
-rw-r--r-- | sys/net/if_arcsubr.c | 4 | ||||
-rw-r--r-- | sys/net/if_ef.c | 2 | ||||
-rw-r--r-- | sys/net/if_ethersubr.c | 2 | ||||
-rw-r--r-- | sys/net/if_fddisubr.c | 2 | ||||
-rw-r--r-- | sys/net/if_iso88025subr.c | 2 | ||||
-rw-r--r-- | sys/net/if_ppp.c | 2 |
6 files changed, 7 insertions, 7 deletions
diff --git a/sys/net/if_arcsubr.c b/sys/net/if_arcsubr.c index 24c3a86..1912dc3 100644 --- a/sys/net/if_arcsubr.c +++ b/sys/net/if_arcsubr.c @@ -543,14 +543,14 @@ arc_input(ifp, m) #ifdef INET case ARCTYPE_IP: m_adj(m, ARC_HDRNEWLEN); - if (ipflow_fastforward(m)) + if (ip_fastforward(m)) return; isr = NETISR_IP; break; case ARCTYPE_IP_OLD: m_adj(m, ARC_HDRLEN); - if (ipflow_fastforward(m)) + if (ip_fastforward(m)) return; isr = NETISR_IP; break; diff --git a/sys/net/if_ef.c b/sys/net/if_ef.c index 8b5aee0..a239613 100644 --- a/sys/net/if_ef.c +++ b/sys/net/if_ef.c @@ -253,7 +253,7 @@ ef_inputEII(struct mbuf *m, struct ether_header *eh, u_short ether_type) #endif #ifdef INET case ETHERTYPE_IP: - if (ipflow_fastforward(m)) + if (ip_fastforward(m)) return (0); isr = NETISR_IP; break; diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c index 8ceb8e3..70eb9f7 100644 --- a/sys/net/if_ethersubr.c +++ b/sys/net/if_ethersubr.c @@ -714,7 +714,7 @@ post_stats: switch (ether_type) { #ifdef INET case ETHERTYPE_IP: - if (ipflow_fastforward(m)) + if (ip_fastforward(m)) return; isr = NETISR_IP; break; diff --git a/sys/net/if_fddisubr.c b/sys/net/if_fddisubr.c index 0accd7d..b7f07db 100644 --- a/sys/net/if_fddisubr.c +++ b/sys/net/if_fddisubr.c @@ -471,7 +471,7 @@ fddi_input(ifp, m) switch (type) { #ifdef INET case ETHERTYPE_IP: - if (ipflow_fastforward(m)) + if (ip_fastforward(m)) return; isr = NETISR_IP; break; diff --git a/sys/net/if_iso88025subr.c b/sys/net/if_iso88025subr.c index 8be0503..a34c6bf 100644 --- a/sys/net/if_iso88025subr.c +++ b/sys/net/if_iso88025subr.c @@ -556,7 +556,7 @@ iso88025_input(ifp, m) #ifdef INET case ETHERTYPE_IP: th->iso88025_shost[0] &= ~(TR_RII); - if (ipflow_fastforward(m)) + if (ip_fastforward(m)) return; isr = NETISR_IP; break; diff --git a/sys/net/if_ppp.c b/sys/net/if_ppp.c index 898ad0e..c9a8f8f 100644 --- a/sys/net/if_ppp.c +++ b/sys/net/if_ppp.c @@ -1537,7 +1537,7 @@ ppp_inproc(sc, m) m->m_pkthdr.len -= PPP_HDRLEN; m->m_data += PPP_HDRLEN; m->m_len -= PPP_HDRLEN; - if (ipflow_fastforward(m)) + if (ip_fastforward(m)) return; isr = NETISR_IP; break; |