ng_vjc.h revision 139823
1222689Srwatson 2222689Srwatson/* 3222689Srwatson * ng_vjc.h 4222689Srwatson */ 5222689Srwatson 6222689Srwatson/*- 7222689Srwatson * Copyright (c) 1996-1999 Whistle Communications, Inc. 8222689Srwatson * All rights reserved. 9222689Srwatson * 10222689Srwatson * Subject to the following obligations and disclaimer of warranty, use and 11222689Srwatson * redistribution of this software, in source or object code forms, with or 12222689Srwatson * without modifications are expressly permitted by Whistle Communications; 13222689Srwatson * provided, however, that: 14222689Srwatson * 1. Any and all reproductions of the source or object code must include the 15222689Srwatson * copyright notice above and the following disclaimer of warranties; and 16222689Srwatson * 2. No rights are granted, in any manner or form, to use Whistle 17222689Srwatson * Communications, Inc. trademarks, including the mark "WHISTLE 18222689Srwatson * COMMUNICATIONS" on advertising, endorsements, or otherwise except as 19222689Srwatson * such appears in the above copyright notice or in the software. 20222689Srwatson * 21222689Srwatson * THIS SOFTWARE IS BEING PROVIDED BY WHISTLE COMMUNICATIONS "AS IS", AND 22222689Srwatson * TO THE MAXIMUM EXTENT PERMITTED BY LAW, WHISTLE COMMUNICATIONS MAKES NO 23222689Srwatson * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE, 24222689Srwatson * INCLUDING WITHOUT LIMITATION, ANY AND ALL IMPLIED WARRANTIES OF 25222689Srwatson * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. 26222689Srwatson * WHISTLE COMMUNICATIONS DOES NOT WARRANT, GUARANTEE, OR MAKE ANY 27222689Srwatson * REPRESENTATIONS REGARDING THE USE OF, OR THE RESULTS OF THE USE OF THIS 28222689Srwatson * SOFTWARE IN TERMS OF ITS CORRECTNESS, ACCURACY, RELIABILITY OR OTHERWISE. 29222689Srwatson * IN NO EVENT SHALL WHISTLE COMMUNICATIONS BE LIABLE FOR ANY DAMAGES 30222689Srwatson * RESULTING FROM OR ARISING OUT OF ANY USE OF THIS SOFTWARE, INCLUDING 31222689Srwatson * WITHOUT LIMITATION, ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 32222689Srwatson * PUNITIVE, OR CONSEQUENTIAL DAMAGES, PROCUREMENT OF SUBSTITUTE GOODS OR 33222689Srwatson * SERVICES, LOSS OF USE, DATA OR PROFITS, HOWEVER CAUSED AND UNDER ANY 34222689Srwatson * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 35222689Srwatson * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 36222689Srwatson * THIS SOFTWARE, EVEN IF WHISTLE COMMUNICATIONS IS ADVISED OF THE POSSIBILITY 37222689Srwatson * OF SUCH DAMAGE. 38222689Srwatson * 39222689Srwatson * Author: Archie Cobbs <archie@freebsd.org> 40222689Srwatson * 41222689Srwatson * $FreeBSD: head/sys/netgraph/ng_vjc.h 139823 2005-01-07 01:45:51Z imp $ 42222689Srwatson * $Whistle: ng_vjc.h,v 1.6 1999/01/25 02:40:22 archie Exp $ 43222689Srwatson */ 44222689Srwatson 45222689Srwatson#ifndef _NETGRAPH_NG_VJC_H_ 46222689Srwatson#define _NETGRAPH_NG_VJC_H_ 47222689Srwatson 48222689Srwatson /* Node type name and magic cookie */ 49222689Srwatson#define NG_VJC_NODE_TYPE "vjc" 50222689Srwatson#define NGM_VJC_COOKIE 868219210 51222689Srwatson 52222689Srwatson /* Hook names */ 53222689Srwatson#define NG_VJC_HOOK_IP "ip" /* normal IP traffic */ 54222689Srwatson#define NG_VJC_HOOK_VJCOMP "vjcomp" /* compressed TCP */ 55222689Srwatson#define NG_VJC_HOOK_VJUNCOMP "vjuncomp" /* uncompressed TCP */ 56222689Srwatson#define NG_VJC_HOOK_VJIP "vjip" /* uncompressed IP */ 57222689Srwatson 58222689Srwatson /* Minimum and maximum number of compression channels */ 59222689Srwatson#define NG_VJC_MIN_CHANNELS 4 60222689Srwatson#define NG_VJC_MAX_CHANNELS 16 61222689Srwatson 62222689Srwatson /* Configure struct */ 63222689Srwatsonstruct ngm_vjc_config { 64222689Srwatson u_char enableComp; /* Enable compression */ 65222689Srwatson u_char enableDecomp; /* Enable decompression */ 66222689Srwatson u_char maxChannel; /* Number of compression channels - 1 */ 67222689Srwatson u_char compressCID; /* OK to compress outgoing CID's */ 68222689Srwatson}; 69222689Srwatson 70222689Srwatson/* Keep this in sync with the above structure definition */ 71222689Srwatson#define NG_VJC_CONFIG_TYPE_INFO { \ 72222689Srwatson { "enableComp", &ng_parse_uint8_type }, \ 73222689Srwatson { "enableDecomp", &ng_parse_uint8_type }, \ 74222689Srwatson { "maxChannel", &ng_parse_uint8_type }, \ 75222689Srwatson { "compressCID", &ng_parse_uint8_type }, \ 76222689Srwatson { NULL } \ 77222689Srwatson} 78222689Srwatson 79222689Srwatson /* Netgraph commands */ 80222689Srwatsonenum { 81222689Srwatson NGM_VJC_SET_CONFIG, /* Supply a struct ngm_vjc_config */ 82222689Srwatson NGM_VJC_GET_CONFIG, /* Returns a struct ngm_vjc_config */ 83222689Srwatson NGM_VJC_GET_STATE, /* Returns current struct slcompress */ 84222689Srwatson NGM_VJC_CLR_STATS, /* Clears statistics counters */ 85222689Srwatson NGM_VJC_RECV_ERROR, /* Indicate loss of incoming frame */ 86222689Srwatson}; 87222689Srwatson 88222689Srwatson#endif /* _NETGRAPH_NG_VJC_H_ */ 89222689Srwatson