File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / mpd / src / ecp.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Mon Jul 22 08:44:29 2013 UTC (10 years, 11 months ago) by misho
Branches: mpd, MAIN
CVS tags: v5_8p7, v5_8p1_cross, v5_8p1, v5_8, v5_7p0, v5_7, v5_6, HEAD
5.7

    1: 
    2: /*
    3:  * ecp.h
    4:  *
    5:  * Written by Archie Cobbs <archie@freebsd.org>
    6:  * Copyright (c) 1998-1999 Whistle Communications, Inc. All rights reserved.
    7:  * See ``COPYRIGHT.whistle''
    8:  */
    9: 
   10: #ifndef _ECP_H_
   11: #define	_ECP_H_
   12: 
   13: #include "defs.h"
   14: #include "fsm.h"
   15: #include "mbuf.h"
   16: #include "encrypt.h"
   17: #include "command.h"
   18: 
   19: #ifdef ECP_DES
   20: #include "ecp_dese.h"
   21: #include "ecp_dese_bis.h"
   22: #endif
   23: 
   24: /*
   25:  * DEFINITIONS
   26:  */
   27: 
   28:   #define ECP_DIR_XMIT		1
   29:   #define ECP_DIR_RECV		2
   30: 
   31: /* Encryption types */
   32: 
   33:   #define ECP_TY_OUI		0
   34:   #define ECP_TY_DESE		1
   35:   #define ECP_TY_3DESE		2
   36:   #define ECP_TY_DESE_bis	3
   37: 
   38: /* Max supported key length */
   39: 
   40:   #define ECP_MAX_KEY	32
   41: 
   42: /* ECP state */
   43: 
   44:   struct ecpstate
   45:   {
   46:     char		key[ECP_MAX_KEY];	/* Encryption key */
   47:     EncType		xmit;		/* Xmit encryption type */
   48:     EncType		recv;		/* Recv encryption type */
   49:     uint32_t		self_reject;
   50:     uint32_t		peer_reject;
   51:     struct fsm		fsm;		/* PPP FSM */
   52:     struct optinfo	options;	/* Configured options */
   53: #ifdef ECP_DES
   54:     struct desinfo	des;		/* DESE info */
   55:     struct desebisinfo	desebis;	/* DESE-bis info */
   56: #endif
   57:     uint32_t		xmit_resets;	/* Number of ResetReq we have got from other side */
   58:     uint32_t		recv_resets;	/* Number of ResetReq we have sent to other side */
   59:   };
   60:   typedef struct ecpstate	*EcpState;
   61: 
   62: /*
   63:  * VARIABLES
   64:  */
   65: 
   66:   extern const struct cmdtab	EcpSetCmds[];
   67: 
   68:   extern int		gEcpCsock;		/* Socket node control socket */
   69:   extern int		gEcpDsock;		/* Socket node data socket */
   70: 
   71: /*
   72:  * FUNCTIONS
   73:  */
   74: 
   75:   extern void	EcpInit(Bund b);
   76:   extern void	EcpInst(Bund b, Bund bt);
   77:   extern void	EcpUp(Bund b);
   78:   extern void	EcpDown(Bund b);
   79:   extern void	EcpOpen(Bund b);
   80:   extern void	EcpClose(Bund b);
   81:   extern int	EcpOpenCmd(Context ctx);
   82:   extern int	EcpCloseCmd(Context ctx);
   83:   extern int	EcpSubtractBloat(Bund b, int size);
   84:   extern void	EcpInput(Bund b, Mbuf bp);
   85:   extern Mbuf	EcpDataInput(Bund b, Mbuf bp);
   86:   extern Mbuf	EcpDataOutput(Bund b, Mbuf bp);
   87:   extern void	EcpSendResetReq(Fsm fp);
   88:   extern int	EcpStat(Context ctx, int ac, char *av[], void *arg);
   89: 
   90:   extern int	EcpsInit(void);
   91:   extern void	EcpsShutdown(void);
   92: 
   93: #endif
   94: 

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