From ru@ucb.crimea.ua Sat Mar 20 07:55:00 1999
Return-Path: <ru@ucb.crimea.ua>
Received: from relay.ucb.crimea.ua (relay.ucb.crimea.ua [212.110.138.1])
	by hub.freebsd.org (Postfix) with ESMTP id 624A114FF7
	for <FreeBSD-gnats-submit@freebsd.org>; Sat, 20 Mar 1999 07:54:15 -0800 (PST)
	(envelope-from ru@ucb.crimea.ua)
Received: (from ru@localhost)
	by relay.ucb.crimea.ua (8.9.2/8.9.2/UCB) id RAA65903;
	Sat, 20 Mar 1999 17:53:52 +0200 (EET)
	(envelope-from ru)
Message-Id: <199903201553.RAA65903@relay.ucb.crimea.ua>
Date: Sat, 20 Mar 1999 17:53:52 +0200 (EET)
From: Ruslan Ermilov <ru@ucb.crimea.ua>
Reply-To: ru@ucb.crimea.ua
To: FreeBSD-gnats-submit@freebsd.org
Subject: Fast IP forwarding is not documented
X-Send-Pr-Version: 3.2

>Number:         10692
>Category:       docs
>Synopsis:       Fast IP forwarding is not documented
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-doc
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat Mar 20 08:00:01 PST 1999
>Closed-Date:    Mon Mar 22 02:54:50 PST 1999
>Last-Modified:  Mon Mar 22 02:55:57 PST 1999
>Originator:     Ruslan Ermilov
>Release:        FreeBSD 3.1-STABLE i386
>Organization:
United Commercial Bank
>Environment:

Both RELENG_3 and HEAD

>Description:

Fast IP forwarding code is not documented in any way.

>How-To-Repeat:

dg          1998/05/19 07:04:40 PDT

  Modified files:
    sys/conf             files
    sys/net              if_ethersubr.c if_fddisubr.c if_ppp.c
    sys/netinet          in.h in_var.h ip_fw.c ip_input.c ip_var.h
  Added files:
    sys/netinet          ip_flow.c
  Log:
  Added fast IP forwarding code by Matt Thomas <matt@3am-software.com> via
  NetBSD, ported to FreeBSD by Pierre Beyssac <pb@fasterix.freenix.org> and
  minorly tweaked by me.
  This is a standard part of FreeBSD, but must be enabled with:
  "sysctl -w net.inet.ip.fastforwarding=1" ...and of course forwarding must
  also be enabled. This should probably be modified to use the zone
  allocator for speed and space efficiency. The current algorithm also
  appears to lose if the number of active paths exceeds IPFLOW_MAX (256),
  in which case it wastes lots of time trying to figure out which cache
  entry to drop.


>Fix:

Index: inet.4
===================================================================
RCS file: /usr/FreeBSD-CVS/src/share/man/man4/inet.4,v
retrieving revision 1.8
diff -u -r1.8 inet.4
--- inet.4	1997/02/22 13:24:32	1.8
+++ inet.4	1999/03/19 16:05:52
@@ -209,13 +209,22 @@
 MIB.  In addition to the variables supported by the transport
 protocols (for which see the respective manual pages), the following
 general variables are defined:
-.Bl -tag -width IPCTL_SENDREDIRECTS
+.Bl -tag -width IPCTL_FASTFORWARDING
 .It Dv IPCTL_FORWARDING
 .Pq ip.forwarding
-Boolean: enable/disable forwarding of IP packets (default depends on
-the 
-.Dv GATEWAY
-kernel configuration option).
+Boolean: enable/disable forwarding of IP packets.
+Defaults to off.
+.It Dv IPCTL_FASTFORWARDING
+.Pq ip.fastforwarding
+Boolean: enable/disable the use of fast IP forwarding code.
+Defaults to off.
+When fast forwarding is enabled, IP packets are forwarded directly to
+the appropriate network interface with a minimal validity checking, which
+greatly improves the throughput.  On the other hand, they bypass the
+standard procedures, such as IP option processing and
+.Xr ipfirewall 4
+checking.
+It is not guaranteed that every packet will be fast-forwarded.
 .It Dv IPCTL_SENDREDIRECTS
 .Pq ip.redirect
 Boolean: enable/disable sending of ICMP redirects in response to
@@ -256,6 +265,7 @@
 .Xr igmp 4 ,
 .Xr intro 4 ,
 .Xr ip 4 ,
+.Xr ipfirewall 4 ,
 .Xr tcp 4 ,
 .Xr ttcp 4 ,
 .Xr udp 4


>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: des 
State-Changed-When: Mon Mar 22 02:54:50 PST 1999 
State-Changed-Why:  
Fixed in -current. 
>Unformatted:
