Annotation of embedaddon/mpd/src/ipcp.h, revision 1.1.1.1

1.1       misho       1: 
                      2: /*
                      3:  * ipcp.h
                      4:  *
                      5:  * Written by Toshiharu OHNO <tony-o@iij.ad.jp>
                      6:  * Copyright (c) 1993, Internet Initiative Japan, Inc. All rights reserved.
                      7:  * See ``COPYRIGHT.iij''
                      8:  * 
                      9:  * Rewritten by Archie Cobbs <archie@freebsd.org>
                     10:  * Copyright (c) 1995-1999 Whistle Communications, Inc. All rights reserved.
                     11:  * See ``COPYRIGHT.whistle''
                     12:  */
                     13: 
                     14: #ifndef _IPCP_H_
                     15: #define _IPCP_H_
                     16: 
                     17: #include <sys/types.h>
                     18: #include <netinet/in_systm.h>
                     19: #include <netinet/ip.h>
                     20: #include "command.h"
                     21: #include "phys.h"
                     22: #include "fsm.h"
                     23: #include "timer.h"
                     24: #include "vars.h"
                     25: 
                     26: /*
                     27:  * DEFINITONS
                     28:  */
                     29:  
                     30:    /* Configuration options */
                     31:   enum {
                     32:     IPCP_CONF_VJCOMP,
                     33:     IPCP_CONF_REQPRIDNS,
                     34:     IPCP_CONF_REQSECDNS,
                     35:     IPCP_CONF_REQPRINBNS,
                     36:     IPCP_CONF_REQSECNBNS,
                     37:     IPCP_CONF_PRETENDIP
                     38:   };
                     39: 
                     40: 
                     41:   struct ipcpvjcomp {
                     42:     u_short    proto;                  /* Protocol (only VJCOMP supported) */
                     43:     u_char     maxchan;                /* Number of compression slots - 1 */
                     44:     u_char     compcid;                /* Whether conn-id is compressible */
                     45:   };
                     46: 
                     47:   struct ipcpconf {
                     48:     struct optinfo     options;        /* Configuraion options */
                     49:     struct u_range     self_allow;     /* My allowed IP addresses */
                     50:     struct u_range     peer_allow;     /* His allowed IP addresses */
                     51:     char               self_ippool[LINK_MAX_NAME];
                     52:     char               ippool[LINK_MAX_NAME];
                     53:     struct in_addr     peer_dns[2];    /* DNS servers for peer to use */
                     54:     struct in_addr     peer_nbns[2];   /* NBNS servers for peer to use */
                     55:   };
                     56:   typedef struct ipcpconf      *IpcpConf;
                     57: 
                     58:   struct ipcpstate {
                     59:     struct ipcpconf    conf;           /* Configuration */
                     60: 
                     61:     struct in_addr     want_addr;      /* IP address I'm willing to use */
                     62:     struct in_addr     peer_addr;      /* IP address he is willing to use */
                     63: 
                     64:     struct u_range     self_allow;     /* My allowed IP addresses */
                     65:     struct u_range     peer_allow;     /* His allowed IP addresses */
                     66: 
                     67:     u_char             self_ippool_used;
                     68:     u_char             ippool_used;
                     69: #ifdef USE_NG_VJC
                     70:     struct ipcpvjcomp  peer_comp;      /* Peer's IP compression config */
                     71:     struct ipcpvjcomp  want_comp;      /* My IP compression config */
                     72: #endif
                     73:     struct in_addr     want_dns[2];    /* DNS servers we got from peer */
                     74:     struct in_addr     want_nbns[2];   /* NBNS servers we got from peer */
                     75: 
                     76:     uint32_t           peer_reject;    /* Request codes rejected by peer */
                     77: 
                     78:     struct fsm         fsm;
                     79:   };
                     80:   typedef struct ipcpstate     *IpcpState;
                     81: 
                     82: /*
                     83:  * VARIABLES
                     84:  */
                     85: 
                     86:   extern const struct cmdtab   IpcpSetCmds[];
                     87: 
                     88: /*
                     89:  * FUNCTIONS
                     90:  */
                     91: 
                     92:   extern void  IpcpInit(Bund b);
                     93:   extern void  IpcpInst(Bund b, Bund bt);
                     94:   extern void  IpcpUp(Bund b);
                     95:   extern void  IpcpDown(Bund b);
                     96:   extern void  IpcpOpen(Bund b);
                     97:   extern void  IpcpClose(Bund b);
                     98:   extern int   IpcpOpenCmd(Context ctx);
                     99:   extern int   IpcpCloseCmd(Context ctx);
                    100:   extern void  IpcpInput(Bund b, Mbuf bp);
                    101:   extern void  IpcpDefAddress(void);
                    102:   extern int   IpcpStat(Context ctx, int ac, char *av[], void *arg);
                    103: 
                    104: #endif
                    105: 
                    106: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>