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

1.1       misho       1: /*
                      2:  * See ``COPYRIGHT.mpd''
                      3:  *
1.1.1.6 ! misho       4:  * $Id: radius.h 2334 2019-01-05 00:35:19Z dadv $
1.1       misho       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: 
1.1.1.6 ! misho      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: #ifndef RAD_FRAMED_IPV6_ADDRESS
        !            91: #define RAD_FRAMED_IPV6_ADDRESS        168
        !            92: #endif
        !            93: 
        !            94: /* for mppe-keys */
        !            95: #define AUTH_LEN               16
        !            96: #define SALT_LEN               2
        !            97: 
        !            98: /* max. length of RAD_ACCT_SESSION_ID, RAD_ACCT_MULTI_SESSION_ID */
        !            99: #define RAD_ACCT_MAX_SESSIONID 256
        !           100: 
        !           101: #define RAD_VENDOR_MPD         12341
        !           102: #define RAD_MPD_RULE           1
        !           103: #define RAD_MPD_PIPE           2
        !           104: #define RAD_MPD_QUEUE          3
        !           105: #define RAD_MPD_TABLE          4
        !           106: #define RAD_MPD_TABLE_STATIC   5
        !           107: #define RAD_MPD_FILTER         6
        !           108: #define RAD_MPD_LIMIT          7
        !           109: #define RAD_MPD_INPUT_OCTETS   8
        !           110: #define RAD_MPD_INPUT_PACKETS  9
        !           111: #define RAD_MPD_OUTPUT_OCTETS  10
        !           112: #define RAD_MPD_OUTPUT_PACKETS 11
        !           113: #define RAD_MPD_LINK           12
        !           114: #define RAD_MPD_BUNDLE         13
        !           115: #define RAD_MPD_IFACE          14
        !           116: #define RAD_MPD_IFACE_INDEX    15
        !           117: #define RAD_MPD_INPUT_ACCT     16
        !           118: #define RAD_MPD_OUTPUT_ACCT    17
        !           119: #define RAD_MPD_ACTION         18
        !           120: #define RAD_MPD_PEER_IDENT     19
        !           121: #define RAD_MPD_IFACE_NAME     20
        !           122: #define RAD_MPD_IFACE_DESCR    21
        !           123: #define RAD_MPD_IFACE_GROUP    22
        !           124: #define RAD_MPD_DROP_USER      154
        !           125: 
        !           126: /* Configuration options */
        !           127: enum {
        !           128:        RADIUS_CONF_MESSAGE_AUTHENTIC
        !           129: };
        !           130: 
        !           131: extern const struct cmdtab RadiusSetCmds[];
        !           132: extern const struct cmdtab RadiusUnSetCmds[];
        !           133: 
        !           134: /* Configuration for a radius server */
        !           135: struct radiusserver_conf {
        !           136:        char    *hostname;
        !           137:        char    *sharedsecret;
        !           138:        in_port_t auth_port;
        !           139:        in_port_t acct_port;
        !           140:        struct  radiusserver_conf *next;
        !           141: };
        !           142: typedef struct radiusserver_conf *RadServe_Conf;
        !           143: 
        !           144: struct radiusconf {
        !           145:        int     radius_timeout;
        !           146:        int     radius_retries;
1.1.1.3   misho     147: #ifdef HAVE_RAD_BIND
1.1.1.6 ! misho     148:        struct  in_addr src_addr;
1.1.1.3   misho     149: #endif
1.1.1.6 ! misho     150:        struct  in_addr radius_me;
        !           151:        struct  u_addr radius_mev6;
        !           152:        char    *identifier;
        !           153:        char    *file;
        !           154:        struct  radiusserver_conf *server;
        !           155:        struct  optinfo options;                /* Configured options */
        !           156: };
        !           157: typedef struct radiusconf *RadConf;
        !           158: 
        !           159: struct rad_chapvalue {
        !           160:        u_char  ident;
        !           161:        u_char  response[CHAP_MAX_VAL];
        !           162: };
        !           163: 
        !           164: struct rad_mschapvalue {
        !           165:        u_char  ident;
        !           166:        u_char  flags;
        !           167:        u_char  lm_response[24];
        !           168:        u_char  nt_response[24];
        !           169: };
        !           170: 
        !           171: struct rad_mschapv2value {
        !           172:        u_char  ident;
        !           173:        u_char  flags;
        !           174:        u_char  pchallenge[16];
        !           175:        u_char  reserved[8];
        !           176:        u_char  response[24];
        !           177: };
1.1       misho     178: 
1.1.1.6 ! misho     179: struct authdata;
1.1       misho     180: 
                    181: /*
                    182:  * FUNCTIONS
                    183:  */
                    184: 
1.1.1.6 ! misho     185: extern void RadiusInit(Link l);
        !           186: extern int RadiusAuthenticate(struct authdata *auth);
        !           187: extern int RadiusAccount(struct authdata *auth);
        !           188: extern void RadiusClose(struct authdata *auth);
        !           189: extern void RadiusEapProxy(void *arg);
        !           190: extern int RadStat(Context ctx, int ac, const char *const av[], const void *arg);
1.1       misho     191: 
                    192: #endif

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