ng_vjc.4 (84306) | ng_vjc.4 (117011) |
---|---|
1.\" Copyright (c) 1996-1999 Whistle Communications, Inc. 2.\" All rights reserved. 3.\" 4.\" Subject to the following obligations and disclaimer of warranty, use and 5.\" redistribution of this software, in source or object code forms, with or 6.\" without modifications are expressly permitted by Whistle Communications; 7.\" provided, however, that: 8.\" 1. Any and all reproductions of the source or object code must include the --- 18 unchanged lines hidden (view full) --- 27.\" SERVICES, LOSS OF USE, DATA OR PROFITS, HOWEVER CAUSED AND UNDER ANY 28.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 30.\" THIS SOFTWARE, EVEN IF WHISTLE COMMUNICATIONS IS ADVISED OF THE POSSIBILITY 31.\" OF SUCH DAMAGE. 32.\" 33.\" Author: Archie Cobbs <archie@FreeBSD.org> 34.\" | 1.\" Copyright (c) 1996-1999 Whistle Communications, Inc. 2.\" All rights reserved. 3.\" 4.\" Subject to the following obligations and disclaimer of warranty, use and 5.\" redistribution of this software, in source or object code forms, with or 6.\" without modifications are expressly permitted by Whistle Communications; 7.\" provided, however, that: 8.\" 1. Any and all reproductions of the source or object code must include the --- 18 unchanged lines hidden (view full) --- 27.\" SERVICES, LOSS OF USE, DATA OR PROFITS, HOWEVER CAUSED AND UNDER ANY 28.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 30.\" THIS SOFTWARE, EVEN IF WHISTLE COMMUNICATIONS IS ADVISED OF THE POSSIBILITY 31.\" OF SUCH DAMAGE. 32.\" 33.\" Author: Archie Cobbs <archie@FreeBSD.org> 34.\" |
35.\" $FreeBSD: head/share/man/man4/ng_vjc.4 84306 2001-10-01 16:09:29Z ru $ | 35.\" $FreeBSD: head/share/man/man4/ng_vjc.4 117011 2003-06-28 23:53:39Z ru $ |
36.\" $Whistle: ng_vjc.8,v 1.4 1999/01/25 23:46:28 archie Exp $ 37.\" 38.Dd January 19, 1999 39.Dt NG_VJC 4 40.Os 41.Sh NAME 42.Nm ng_vjc 43.Nd Van Jacobson compression netgraph node type --- 7 unchanged lines hidden (view full) --- 51over PPP, SLIP, and other point-to-point IP connections to 52compress TCP packet headers. The 53.Dv ip 54hook represents the uncompressed side of the node, while the 55.Dv vjcomp , 56.Dv vjuncomp , 57and 58.Dv vjip | 36.\" $Whistle: ng_vjc.8,v 1.4 1999/01/25 23:46:28 archie Exp $ 37.\" 38.Dd January 19, 1999 39.Dt NG_VJC 4 40.Os 41.Sh NAME 42.Nm ng_vjc 43.Nd Van Jacobson compression netgraph node type --- 7 unchanged lines hidden (view full) --- 51over PPP, SLIP, and other point-to-point IP connections to 52compress TCP packet headers. The 53.Dv ip 54hook represents the uncompressed side of the node, while the 55.Dv vjcomp , 56.Dv vjuncomp , 57and 58.Dv vjip |
59hooks represent the compressed side of the node. Packets received on the | 59hooks represent the compressed side of the node. 60Packets received on the |
60.Dv ip | 61.Dv ip |
61will be compressed or passed through as appropriate. Packets received 62on the other three hooks will be uncompressed as appropriate. | 62will be compressed or passed through as appropriate. 63Packets received on the other three hooks will be uncompressed as appropriate. |
63This node also supports 64.Dq always pass through 65mode in either direction. 66.Pp 67Van Jacobson compression only applies to TCP packets. 68Only 69.Dq normal 70(i.e., common case) TCP packets are actually compressed. 71These are output on the 72.Dv vjcomp | 64This node also supports 65.Dq always pass through 66mode in either direction. 67.Pp 68Van Jacobson compression only applies to TCP packets. 69Only 70.Dq normal 71(i.e., common case) TCP packets are actually compressed. 72These are output on the 73.Dv vjcomp |
73hook. Other TCP packets are run through the state machine but not | 74hook. 75Other TCP packets are run through the state machine but not |
74compressed; these appear on the 75.Dv vjuncomp 76hook. 77Other non-TCP IP packets are forwarded unchanged to 78.Dv vjip . 79.Pp 80When connecting to a 81.Xr ng_ppp 4 --- 63 unchanged lines hidden (view full) --- 145both compression and decompression are disabled and the node is 146therefore operating in bi-directional 147.Dq pass through 148mode. 149.Pp 150When enabling compression, 151.Dv maxChannel 152should be set to the number of outgoing compression channels minus one, | 76compressed; these appear on the 77.Dv vjuncomp 78hook. 79Other non-TCP IP packets are forwarded unchanged to 80.Dv vjip . 81.Pp 82When connecting to a 83.Xr ng_ppp 4 --- 63 unchanged lines hidden (view full) --- 147both compression and decompression are disabled and the node is 148therefore operating in bi-directional 149.Dq pass through 150mode. 151.Pp 152When enabling compression, 153.Dv maxChannel 154should be set to the number of outgoing compression channels minus one, |
153and is a value between 3 and 15, inclusive. The | 155and is a value between 3 and 15, inclusive. 156The |
154.Dv compressCID 155field indicates whether it is OK to compress the CID header field for | 157.Dv compressCID 158field indicates whether it is OK to compress the CID header field for |
156outgoing compressed TCP packets. This value should be zero unless | 159outgoing compressed TCP packets. 160This value should be zero unless |
157either (a) it is not possible for an outgoing frame to be lost, or 158(b) lost frames can be reliably detected and immediately 159reported to the peer's decompression engine (see 160.Dv NGM_VJC_RECV_ERROR 161below). 162.It Dv NGM_VJC_GET_STATE 163This command returns the node's current state described by the 164.Dv "struct slcompress" 165structure, which is defined in 166.Pa net/slcompress.h . 167.It Dv NGM_VJC_CLR_STATS | 161either (a) it is not possible for an outgoing frame to be lost, or 162(b) lost frames can be reliably detected and immediately 163reported to the peer's decompression engine (see 164.Dv NGM_VJC_RECV_ERROR 165below). 166.It Dv NGM_VJC_GET_STATE 167This command returns the node's current state described by the 168.Dv "struct slcompress" 169structure, which is defined in 170.Pa net/slcompress.h . 171.It Dv NGM_VJC_CLR_STATS |
168Clears the node statistics counters. Statistics are also cleared whenever the | 172Clears the node statistics counters. 173Statistics are also cleared whenever the |
169.Dv enableComp 170or 171.Dv enableDecomp 172fields are changed from zero to one by a 173.Dv NGM_VJC_SET_CONFIG 174control message. 175.It Dv NGM_VJC_RECV_ERROR 176When the peer has CID header field compression enabled, 177this message must be sent to the local 178.Nm vjc 179node immediately 180after detecting that a received frame has been lost, due to a bad | 174.Dv enableComp 175or 176.Dv enableDecomp 177fields are changed from zero to one by a 178.Dv NGM_VJC_SET_CONFIG 179control message. 180.It Dv NGM_VJC_RECV_ERROR 181When the peer has CID header field compression enabled, 182this message must be sent to the local 183.Nm vjc 184node immediately 185after detecting that a received frame has been lost, due to a bad |
181checksum or for any other reason. Failing to do this can result 182in corrupted TCP stream data. | 186checksum or for any other reason. 187Failing to do this can result in corrupted TCP stream data. |
183.El 184.Sh SHUTDOWN 185This node shuts down upon receipt of a 186.Dv NGM_SHUTDOWN 187control message, or when all hooks have been disconnected. 188.Sh BUGS | 188.El 189.Sh SHUTDOWN 190This node shuts down upon receipt of a 191.Dv NGM_SHUTDOWN 192control message, or when all hooks have been disconnected. 193.Sh BUGS |
189Because the initialization routine in the kernel implementation of | 194As the initialization routine in the kernel implementation of |
190Van Jacobson compression initializes both compression and decompression 191at once, this node does not allow compression and decompression to | 195Van Jacobson compression initializes both compression and decompression 196at once, this node does not allow compression and decompression to |
192be enabled in separate operations. In order to enable one when | 197be enabled in separate operations. 198In order to enable one when |
193the other is already enabled, first both must be disabled, then | 199the other is already enabled, first both must be disabled, then |
194both enabled. This of course resets the node state. This restriction 195may be lifted in a later version. | 200both enabled. 201This of course resets the node state. 202This restriction may be lifted in a later version. |
196.Pp 197When built as a loadable kernel module, this module includes the file 198.Pa net/slcompress.c . 199Although loading the module should fail if 200.Pa net/slcompress.c 201already exists in the kernel, currently it does not, and the duplicate 202copies of the file do not interfere. 203However, this may change in the future. --- 22 unchanged lines hidden --- | 203.Pp 204When built as a loadable kernel module, this module includes the file 205.Pa net/slcompress.c . 206Although loading the module should fail if 207.Pa net/slcompress.c 208already exists in the kernel, currently it does not, and the duplicate 209copies of the file do not interfere. 210However, this may change in the future. --- 22 unchanged lines hidden --- |