xref: /openbsd-src/usr.sbin/tcpdump/radius.h (revision 29643adc3174a6148230931ffcc5654a95753aec)
1*29643adcSjakob /*	$OpenBSD: radius.h,v 1.3 2001/08/21 06:21:29 jakob Exp $	*/
2cf4e9b47Sho 
3e23fb7a7Stqbf /* RADIUS support for tcpdump, Thomas Ptacek <tqbf@enteract.com> */
4e23fb7a7Stqbf 
5*29643adcSjakob /*
6*29643adcSjakob  * Copyright (c) 1997 Thomas H. Ptacek. All rights reserved.
7*29643adcSjakob  *
8*29643adcSjakob  * Redistribution and use in source and binary forms, with or without
9*29643adcSjakob  * modification, are permitted provided that the following conditions
10*29643adcSjakob  * are met:
11*29643adcSjakob  *
12*29643adcSjakob  * 1. Redistributions of source code must retain the above copyright
13*29643adcSjakob  *    notice, this list of conditions and the following disclaimer.
14*29643adcSjakob  *
15*29643adcSjakob  * 2. Redistributions in binary form must reproduce the above copyright
16*29643adcSjakob  *    notice, this list of conditions and the following disclaimer in the
17*29643adcSjakob  *    documentation and/or other materials provided with the distribution.
18*29643adcSjakob  *
19*29643adcSjakob  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20*29643adcSjakob  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21*29643adcSjakob  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22*29643adcSjakob  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23*29643adcSjakob  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24*29643adcSjakob  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25*29643adcSjakob  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26*29643adcSjakob  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27*29643adcSjakob  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28*29643adcSjakob  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29*29643adcSjakob  *
30*29643adcSjakob  */
31*29643adcSjakob 
32e23fb7a7Stqbf /* ------------------------------------------------------------ */
33e23fb7a7Stqbf 
34e23fb7a7Stqbf /* RADIUS attribute encoding types */
35e23fb7a7Stqbf 
36e23fb7a7Stqbf #define RD_INT				1
37e23fb7a7Stqbf #define RD_DATE				2
38e23fb7a7Stqbf #define RD_ADDRESS			3
39e23fb7a7Stqbf #define RD_STRING			4
40e23fb7a7Stqbf #define RD_HEX				5
41e23fb7a7Stqbf 
42e23fb7a7Stqbf /* ------------------------------------------------------------ */
43e23fb7a7Stqbf 
44e23fb7a7Stqbf /* RADIUS packet opcodes */
45e23fb7a7Stqbf 
46e23fb7a7Stqbf #define RADIUS_CODE_ACCESS_REQUEST		1
47e23fb7a7Stqbf #define RADIUS_CODE_ACCESS_ACCEPT		2
48e23fb7a7Stqbf #define RADIUS_CODE_ACCESS_REJECT		3
49e23fb7a7Stqbf #define RADIUS_CODE_ACCOUNT_REQUEST		4
50e23fb7a7Stqbf #define RADIUS_CODE_ACCOUNT_RESPONSE		5
51e23fb7a7Stqbf #define RADIUS_CODE_ACCOUNT_STATUS		6
52e23fb7a7Stqbf #define RADIUS_CODE_PASSCHG_REQUEST		7
53e23fb7a7Stqbf #define RADIUS_CODE_PASSCHG_ACCEPT		8
54e23fb7a7Stqbf #define RADIUS_CODE_PASSCHG_REJECT		9
55e23fb7a7Stqbf #define RADIUS_CODE_ACCOUNT_MESSAGE		10
56e23fb7a7Stqbf #define RADIUS_CODE_ACCESS_CHALLENGE		11
57e23fb7a7Stqbf 
58e23fb7a7Stqbf /* ------------------------------------------------------------ */
59e23fb7a7Stqbf 
60e23fb7a7Stqbf /* slew o' attributes */
61e23fb7a7Stqbf 
62e23fb7a7Stqbf #define RADIUS_ATT_USER_NAME			1
63e23fb7a7Stqbf #define RADIUS_ATT_PASSWORD			2
64e23fb7a7Stqbf #define RADIUS_ATT_CHAP_PASS			3
65e23fb7a7Stqbf #define RADIUS_ATT_NAS_IP			4
66e23fb7a7Stqbf #define RADIUS_ATT_NAS_PORT			5
67e23fb7a7Stqbf #define RADIUS_ATT_USER_SERVICE			6
68e23fb7a7Stqbf #define RADIUS_ATT_PROTOCOL			7
69e23fb7a7Stqbf #define RADIUS_ATT_FRAMED_ADDRESS		8
70e23fb7a7Stqbf #define RADIUS_ATT_NETMASK			9
71e23fb7a7Stqbf #define RADIUS_ATT_ROUTING			10
72e23fb7a7Stqbf #define RADIUS_ATT_FILTER			11
73e23fb7a7Stqbf #define RADIUS_ATT_MTU				12
74e23fb7a7Stqbf #define RADIUS_ATT_COMPRESSION			13
75e23fb7a7Stqbf #define RADIUS_ATT_LOGIN_HOST			14
76e23fb7a7Stqbf #define RADIUS_ATT_LOGIN_SERVICE		15
77e23fb7a7Stqbf #define RADIUS_ATT_LOGIN_TCP_PORT		16
78e23fb7a7Stqbf #define RADIUS_ATT_OLD_PASSWORD			17
79e23fb7a7Stqbf #define RADIUS_ATT_PORT_MESSAGE			18
80e23fb7a7Stqbf #define RADIUS_ATT_DIALBACK_NO			19
81e23fb7a7Stqbf #define RADIUS_ATT_DIALBACK_NAME		20
82e23fb7a7Stqbf #define RADIUS_ATT_EXPIRATION			21
83e23fb7a7Stqbf #define RADIUS_ATT_FRAMED_ROUTE			22
84e23fb7a7Stqbf #define RADIUS_ATT_FRAMED_IPX			23
85e23fb7a7Stqbf #define RADIUS_ATT_CHALLENGE_STATE		24
86e23fb7a7Stqbf #define RADIUS_ATT_CLASS			25
87e23fb7a7Stqbf #define RADIUS_ATT_VENDOR_SPECIFIC		26
88e23fb7a7Stqbf #define RADIUS_ATT_SESSION_TIMEOUT		27
89e23fb7a7Stqbf #define RADIUS_ATT_IDLE_TIMEOUT			28
90e23fb7a7Stqbf #define RADIUS_ATT_TERMINATE_ACTION		29
91e23fb7a7Stqbf #define RADIUS_ATT_CALLED_ID			30
92e23fb7a7Stqbf #define RADIUS_ATT_CALLER_ID			31
93e23fb7a7Stqbf 
94e23fb7a7Stqbf #define RADIUS_ATT_STATUS_TYPE			40
95e23fb7a7Stqbf 
96e23fb7a7Stqbf /* the accounting attributes change way too much
97e23fb7a7Stqbf  * for me to want to hardcode them in.
98e23fb7a7Stqbf  */
99e23fb7a7Stqbf 
100e23fb7a7Stqbf /* ------------------------------------------------------------ */
101e23fb7a7Stqbf 
102e23fb7a7Stqbf /* RADIUS packet header */
103e23fb7a7Stqbf 
104e23fb7a7Stqbf #define RADFIXEDSZ		20
105e23fb7a7Stqbf 
106e23fb7a7Stqbf struct radius_header {
107e23fb7a7Stqbf 	u_char	code;
108e23fb7a7Stqbf 	u_char 	id;
109e23fb7a7Stqbf 	u_short len;
110e23fb7a7Stqbf 	u_char 	auth[16];
111e23fb7a7Stqbf };
112e23fb7a7Stqbf 
113e23fb7a7Stqbf /* ------------------------------------------------------------ */
114