00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _RADIUS_H_
00023 #define _RADIUS_H_
00024
00025
00026 #include <stdio.h>
00027
00028 #include <stdlib.h>
00029 #include <string.h>
00030 #include <sys/types.h>
00031 #include <sys/socket.h>
00032 #include <netinet/in.h>
00033 #include <arpa/inet.h>
00034 #include <netdb.h>
00035 #include <errno.h>
00036 #include <unistd.h>
00037 #include <fcntl.h>
00038 #include <sys/select.h>
00039
00041 typedef unsigned char Octet;
00042
00044 #define RADIUS_PACKET_AUTHENTICATOR_LEN 16
00045 #define RADIUS_MAX_PACKET_LEN 4096
00046 #define RADIUS_PACKET_IDENTIFIER_LEN 1
00047
00048
00051 #define ACCESS_REQUEST 1
00052 #define ACCESS_ACCEPT 2
00053 #define ACCESS_REJECT 3
00054 #define ACCOUNTING_REQUEST 4
00055 #define ACCOUNTING_RESPONSE 5
00056 #define ACCESS_CHALLENGE 11
00057 #define STATUS_SERVER 12
00058 #define STATUS_CLIENT 13
00059 #define RESERVED 255
00060
00063 #define ATTRIB_User_Name 1 //string
00064 #define ATTRIB_User_Password 2 //string
00065 #define ATTRIB_CHAP_Password 3 //string
00066 #define ATTRIB_NAS_IP_Address 4 //ipaddr
00067 #define ATTRIB_NAS_Port 5 //integer
00068 #define ATTRIB_Service_Type 6 //enum
00069 #define ATTRIB_Framed_Protocol 7 //enum
00070 #define ATTRIB_Framed_IP_Address 8 //ipaddr
00071 #define ATTRIB_Framed_IP_Netmask 9 //ipaddr
00072 #define ATTRIB_Framed_Routing 10 //enum
00073 #define ATTRIB_Filter_Id 11 //string
00074 #define ATTRIB_Framed_MTU 12 //integer
00075 #define ATTRIB_Framed_Compression 13 //enum
00076 #define ATTRIB_Login_IP_Host 14 //ipaddr
00077 #define ATTRIB_Login_Service 15 //enum
00078 #define ATTRIB_Login_TCP_Port 16 //integer
00079 #define ATTRIB_Reply_Message 18 //string
00080 #define ATTRIB_Callback_Number 19 //string
00081 #define ATTRIB_Callback_Id 20 //string
00082 #define ATTRIB_Framed_Route 22 //string
00083 #define ATTRIB_Framed_IPX_Network 23 //integer
00084 #define ATTRIB_State 24 //string
00085 #define ATTRIB_Class 25 //string
00086 #define ATTRIB_Vendor_Specific 26 //string -> vendor
00087 #define ATTRIB_Session_Timeout 27 //integer
00088 #define ATTRIB_Idle_Timeout 28 //enum
00089 #define ATTRIB_Termination_Action 29 //enum
00090 #define ATTRIB_Called_Station_Id 30 //string
00091 #define ATTRIB_Calling_Station_Id 31 //string
00092 #define ATTRIB_NAS_Identifier 32 //string
00093 #define ATTRIB_Proxy_State 33 //string
00094 #define ATTRIB_Login_LAT_Service 34 //string
00095 #define ATTRIB_Login_LAT_Node 35 //string
00096 #define ATTRIB_Login_LAT_Group 36 //string
00097 #define ATTRIB_Framed_AppleTalk_Link 37 //integer
00098 #define ATTRIB_Framed_AppleTalk_Network 38 //integer
00099 #define ATTRIB_Framed_AppleTalk_Zone 39 //string
00100 #define ATTRIB_Acct_Status_Type 40 //enum
00101 #define ATTRIB_Acct_Delay 41 //integer
00102 #define ATTRIB_Acct_Input_Octets 42 //integer
00103 #define ATTRIB_Acct_Output_Octets 43 //integer
00104 #define ATTRIB_Acct_Session_ID 44 //string
00105 #define ATTRIB_Acct_Authentic 45 //enum
00106 #define ATTRIB_Acct_Session_Time 46 //integer
00107 #define ATTRIB_Acct_Input_Packets 47 //integer
00108 #define ATTRIB_Acct_Output_Packets 48 //integer
00109 #define ATTRIB_Acct_Terminate_Cause 49 //enum
00110 #define ATTRIB_Acct_Multi_Session_ID 50 //string
00111 #define ATTRIB_Acct_Link_Count 51 //interger
00112
00113 #define ATTRIB_Acct_Input_Gigawords 52 //integer
00114 #define ATTRIB_Acct_Output_Gigawords 53 //integer
00115 #define ATTRIB_Event_Timestamp 55 //date
00116
00117
00118 #define ATTRIB_CHAP_Challenge 60 //string
00119 #define ATTRIB_NAS_Port_Type 61 //enum
00120 #define ATTRIB_Port_Limit 62 //interger
00121 #define ATTRIB_Login_LAT_Port 63 //enum
00122
00123 #define ATTRIB_Acct_Tunnel_Connection 68 //string
00124
00125 #define ATTRIB_ARAP_Password 70 // string
00126 #define ATTRIB_ARAP_Features 71 //string
00127 #define ATTRIB_ARAP_Zone_Access 72 //integer
00128 #define ATTRIB_ARAP_Security 73 //integer
00129 #define ATTRIB_ARAP_Security_Data 74 //string
00130 #define ATTRIB_Password_Retry 75 //integer
00131 #define ATTRIB_Prompt 76 //integer
00132 #define ATTRIB_Connect_Info 77 //string
00133 #define ATTRIB_Configuration_Token 78 //string
00134 #define ATTRIB_EAP_Message 79 //octets
00135 #define ATTRIB_Message_Authenticator 80 //octets
00136 #define ATTRIB_ARAP_Challenge_Response 84 //string # 10 octets
00137 #define ATTRIB_Acct_Interim_Interval 85 //integer
00138 #define ATTRIB_NAS_Port_Id 87 //string
00139 #define ATTRIB_Framed_Pool 88 //string
00140 #define ATTRIB_NAS_IPv6_Address 95 //ipv6addr
00141 #define ATTRIB_Framed_Interface_Id 96 //ifid
00142 #define ATTRIB_Framed_IPv6_Prefix 97 //octets # ipv6prefix
00143 #define ATTRIB_Login_IPv6_Host 98 //ipv6addr
00144 #define ATTRIB_Framed_IPv6_Route 99 //string
00145 #define ATTRIB_Framed_IPv6_Pool 100//string
00146
00147
00148 #define VALUE_Service_Type_Call_Check "10"
00149 #define VALUE_Service_Type_Framed_User "2"
00150
00151
00152
00153
00154
00155 #endif //_RADIUS_H_