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

1.1       misho       1: /*
                      2:  * See ``COPYRIGHT.mpd''
                      3:  *
                      4:  * $Id: radius.h,v 1.44 2011/08/30 11:47:02 dmitryluhtionov Exp $
                      5:  *
                      6:  */
                      7: 
                      8: #ifdef CCP_MPPC
                      9: #include <netgraph/ng_mppc.h>
                     10: #endif
                     11: #include <radlib.h>
                     12: 
                     13: #include <net/if.h>
                     14: #include <net/if_types.h>
                     15: 
                     16: #include "iface.h"
                     17: 
                     18: #ifndef _RADIUS_H_
                     19: #define _RADIUS_H_
                     20: 
                     21: /*
                     22:  * DEFINITIONS
                     23:  */
                     24: 
                     25:   #define RADIUS_CHAP          1
                     26:   #define RADIUS_PAP           2
                     27:   #define RADIUS_EAP           3
                     28:   #define RADIUS_MAX_SERVERS   10
                     29: 
                     30:   #ifndef RAD_UPDATE
                     31:   #define RAD_UPDATE 3
                     32:   #endif
                     33: 
                     34:   #ifndef RAD_ACCT_INPUT_GIGAWORDS
                     35:   #define RAD_ACCT_INPUT_GIGAWORDS 52
                     36:   #endif
                     37: 
                     38:   #ifndef RAD_ACCT_OUTPUT_GIGAWORDS
                     39:   #define RAD_ACCT_OUTPUT_GIGAWORDS 53
                     40:   #endif
                     41: 
                     42:   #ifndef RAD_TUNNEL_TYPE
                     43:   #define RAD_TUNNEL_TYPE 64
                     44:   #endif
                     45: 
                     46:   #ifndef RAD_TUNNEL_MEDIUM_TYPE
                     47:   #define RAD_TUNNEL_MEDIUM_TYPE 65
                     48:   #endif
                     49: 
                     50:   #ifndef RAD_TUNNEL_CLIENT_ENDPOINT
                     51:   #define RAD_TUNNEL_CLIENT_ENDPOINT 66
                     52:   #endif
                     53: 
                     54:   #ifndef RAD_TUNNEL_SERVER_ENDPOINT
                     55:   #define RAD_TUNNEL_SERVER_ENDPOINT 67
                     56:   #endif
                     57: 
                     58:   #ifndef RAD_EAP_MESSAGE
                     59:   #define RAD_EAP_MESSAGE 79
                     60:   #endif
                     61: 
                     62:   #ifndef RAD_MESSAGE_AUTHENTIC
                     63:   #define RAD_MESSAGE_AUTHENTIC 80
                     64:   #endif
                     65: 
                     66:   #ifndef RAD_ACCT_INTERIM_INTERVAL
                     67:   #define RAD_ACCT_INTERIM_INTERVAL 85
                     68:   #endif
                     69: 
                     70:   #ifndef RAD_NAS_PORT_ID
                     71:   #define RAD_NAS_PORT_ID      87
                     72:   #endif
                     73: 
                     74:   #ifndef RAD_FRAMED_POOL
                     75:   #define RAD_FRAMED_POOL      88
                     76:   #endif
                     77: 
                     78:   #ifndef RAD_TUNNEL_CLIENT_AUTH_ID
                     79:   #define RAD_TUNNEL_CLIENT_AUTH_ID 90
                     80:   #endif
                     81: 
                     82:   #ifndef RAD_TUNNEL_SERVER_AUTH_ID
                     83:   #define RAD_TUNNEL_SERVER_AUTH_ID 91
                     84:   #endif
                     85: 
                     86:   #ifndef RAD_MAX_ATTR_LEN
                     87:   #define RAD_MAX_ATTR_LEN 253
                     88:   #endif
                     89: 
                     90:   /* for mppe-keys */
                     91:   #define AUTH_LEN             16
                     92:   #define SALT_LEN             2
                     93: 
                     94:   /* max. length of RAD_ACCT_SESSION_ID, RAD_ACCT_MULTI_SESSION_ID */
                     95:   #define RAD_ACCT_MAX_SESSIONID       256
                     96: 
                     97:   #define RAD_VENDOR_MPD       12341
                     98:   #define RAD_MPD_RULE         1
                     99:   #define RAD_MPD_PIPE         2
                    100:   #define RAD_MPD_QUEUE                3
                    101:   #define RAD_MPD_TABLE                4
                    102:   #define RAD_MPD_TABLE_STATIC 5
                    103:   #define RAD_MPD_FILTER       6
                    104:   #define RAD_MPD_LIMIT                7
                    105:   #define RAD_MPD_INPUT_OCTETS 8
                    106:   #define RAD_MPD_INPUT_PACKETS        9
                    107:   #define RAD_MPD_OUTPUT_OCTETS        10
                    108:   #define RAD_MPD_OUTPUT_PACKETS       11
                    109:   #define RAD_MPD_LINK         12
                    110:   #define RAD_MPD_BUNDLE       13
                    111:   #define RAD_MPD_IFACE                14
                    112:   #define RAD_MPD_IFACE_INDEX  15
                    113:   #define RAD_MPD_INPUT_ACCT   16
                    114:   #define RAD_MPD_OUTPUT_ACCT  17
                    115:   #define RAD_MPD_ACTION       18
                    116:   #define RAD_MPD_PEER_IDENT   19
                    117:   #define RAD_MPD_IFACE_NAME   20
                    118:   #define RAD_MPD_IFACE_DESCR  21
                    119:   #define RAD_MPD_IFACE_GROUP  22
                    120:   #define RAD_MPD_DROP_USER    154
                    121: 
                    122:   /* Configuration options */
                    123:   enum {
                    124:     RADIUS_CONF_MESSAGE_AUTHENTIC
                    125:   };
                    126: 
                    127:   extern const struct cmdtab RadiusSetCmds[];
                    128: 
                    129:   /* Configuration for a radius server */
                    130:   struct radiusserver_conf {
                    131:     char       *hostname;
                    132:     char       *sharedsecret;
                    133:     in_port_t  auth_port;
                    134:     in_port_t  acct_port;
                    135:     struct     radiusserver_conf *next;
                    136:   };
                    137:   typedef struct radiusserver_conf *RadServe_Conf;
                    138: 
                    139:   struct radiusconf {
                    140:     int                radius_timeout;
                    141:     int                radius_retries;
                    142:     struct     in_addr radius_me;
                    143:     struct     u_addr radius_mev6;
                    144:     char       *identifier;
                    145:     char       *file;
                    146:     struct radiusserver_conf *server;
                    147:     struct optinfo     options;        /* Configured options */
                    148:   };
                    149:   typedef struct radiusconf *RadConf;
                    150: 
                    151:   struct rad_chapvalue {
                    152:     u_char     ident;
                    153:     u_char     response[CHAP_MAX_VAL];
                    154:   };
                    155: 
                    156:   struct rad_mschapvalue {
                    157:     u_char     ident;
                    158:     u_char     flags;
                    159:     u_char     lm_response[24];
                    160:     u_char     nt_response[24];
                    161:   };
                    162: 
                    163:   struct rad_mschapv2value {
                    164:     u_char     ident;
                    165:     u_char     flags;
                    166:     u_char     pchallenge[16];
                    167:     u_char     reserved[8];
                    168:     u_char     response[24];
                    169:   };
                    170: 
                    171:   struct authdata;
                    172: 
                    173: /*
                    174:  * FUNCTIONS
                    175:  */
                    176: 
                    177:   extern void  RadiusInit(Link l);
                    178:   extern int   RadiusAuthenticate(struct authdata *auth);
                    179:   extern int   RadiusAccount(struct authdata *auth);
                    180:   extern void  RadiusClose(struct authdata *auth);
                    181:   extern void  RadiusEapProxy(void *arg);
                    182:   extern int   RadStat(Context ctx, int ac, char *av[], void *arg);
                    183: 
                    184: #endif

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