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