2004-07-21 06:31:33 +00:00
|
|
|
/* packet-opsi.h
|
|
|
|
* Routines for OPSI protocol dissection
|
|
|
|
* Copyright 2004, Laurent Rabret <laurent.rabret@i.hate.spams.org>
|
|
|
|
*
|
|
|
|
* $Id$
|
|
|
|
*
|
2006-05-21 05:12:17 +00:00
|
|
|
* Wireshark - Network traffic analyzer
|
|
|
|
* By Gerald Combs <gerald@wireshark.org>
|
2004-07-21 06:31:33 +00:00
|
|
|
* Copyright 1998 Gerald Combs
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
* as published by the Free Software Foundation; either version 2
|
|
|
|
* of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef __PACKET_OPSI_H__
|
|
|
|
#define __PACKET_OPSI_H__
|
|
|
|
|
|
|
|
/* TCP destination port dedicated to the OPSI protocol */
|
|
|
|
#define TCP_PORT_OPSI 4002
|
|
|
|
|
|
|
|
/* Information position in OPSI header */
|
|
|
|
#define MAJOR_VERSION_OFFSET 0
|
|
|
|
#define MINOR_VERSION_OFFSET 1
|
|
|
|
#define CODE_OFFSET 2
|
|
|
|
#define HOOK_ID_OFFSET 3
|
|
|
|
#define PACKET_LENGTH_OFFSET 4
|
|
|
|
#define SESSION_OFFSET 6
|
|
|
|
|
|
|
|
#define HEADER_LENGTH 8
|
|
|
|
|
|
|
|
|
|
|
|
/* Valid OPSI code values */
|
|
|
|
#define DISCOVER_REQUEST 1
|
|
|
|
#define DISCOVER_RESPONSE 2
|
|
|
|
#define SERVICE_REQUEST 3
|
|
|
|
#define SERVICE_ACCEPT 4
|
|
|
|
#define SERVICE_REJECT 5
|
|
|
|
#define TERMINATE_REQUEST 6
|
|
|
|
|
|
|
|
/* Internal structure to dissect attributes */
|
|
|
|
typedef struct {
|
2005-07-23 11:41:25 +00:00
|
|
|
guint16 attribute_type; /* attribute code */
|
|
|
|
const char *tree_text; /* text for fold out */
|
|
|
|
gint *tree_id; /* id for add_item */
|
|
|
|
int* hf_type_attribute; /* id for seach option */
|
|
|
|
void (*dissect)(tvbuff_t *tvb, proto_tree *tree, int* hfValue, int offset, int length);
|
2004-07-21 06:31:33 +00:00
|
|
|
} opsi_attribute_handle_t;
|
|
|
|
|
|
|
|
|
|
|
|
/* Attributes codes */
|
|
|
|
#define USER_NAME_ATTRIBUTE 1
|
|
|
|
#define USER_PASSWD_ATTRIBUTE 2
|
|
|
|
#define CHAP_PASSWD_ATTRIBUTE 3
|
|
|
|
#define NAS_IP_ADDRESS_ATTRIBUTE 4
|
|
|
|
#define NAS_PORT_ATTRIBUTE 5
|
|
|
|
#define SERVICE_TYPE_ATTRIBUTE 6
|
|
|
|
#define FRAMED_PROTOCOL_ATTRIBUTE 7
|
|
|
|
#define FRAMED_ADDRESS_ATTRIBUTE 8
|
|
|
|
#define FRAMED_NETMASK_ATTRIBUTE 9
|
|
|
|
#define FRAMED_ROUTING_ATTRIBUTE 10
|
|
|
|
#define FRAMED_FILTER_ATTRIBUTE 11
|
|
|
|
#define FRAMED_MTU_ATTRIBUTE 12
|
|
|
|
#define FRAMED_COMPRESSION_ATTRIBUTE 13
|
|
|
|
#define CALLED_STATION_ID_ATTRIBUTE 30
|
|
|
|
#define CALLING_STATION_ID_ATTRIBUTE 31
|
|
|
|
#define NAS_IDENTIFIER 32
|
|
|
|
#define ACCOUNTING_40_ATTRIBUTE 40
|
|
|
|
#define ACCOUNTING_41_ATTRIBUTE 41
|
|
|
|
#define ACCOUNTING_42_ATTRIBUTE 42
|
|
|
|
#define ACCOUNTING_43_ATTRIBUTE 43
|
|
|
|
#define ACCOUNTING_SESSION_ID_ATTRIBUTE 44
|
|
|
|
#define ACCOUNTING_45_ATTRIBUTE 45
|
|
|
|
#define ACCOUNTING_46_ATTRIBUTE 46
|
|
|
|
#define ACCOUNTING_47_ATTRIBUTE 47
|
|
|
|
#define ACCOUNTING_48_ATTRIBUTE 48
|
|
|
|
#define ACCOUNTING_49_ATTRIBUTE 49
|
|
|
|
#define ACCOUNTING_50_ATTRIBUTE 50
|
|
|
|
#define ACCOUNTING_51_ATTRIBUTE 51
|
|
|
|
#define ACCOUNTING_52_ATTRIBUTE 52
|
|
|
|
#define ACCOUNTING_53_ATTRIBUTE 53
|
|
|
|
#define ACCOUNTING_54_ATTRIBUTE 54
|
|
|
|
#define ACCOUNTING_55_ATTRIBUTE 55
|
|
|
|
#define ACCOUNTING_56_ATTRIBUTE 56
|
|
|
|
#define ACCOUNTING_57_ATTRIBUTE 57
|
|
|
|
#define ACCOUNTING_58_ATTRIBUTE 58
|
|
|
|
#define ACCOUNTING_59_ATTRIBUTE 59
|
|
|
|
#define CHAP_CHALLENGE_ATTRIBUTE 60
|
|
|
|
#define NAS_PORT_TYPE_ATTRIBUTE 61
|
|
|
|
#define DESIGNATION_NUMBER_ATTRIBUTE 77
|
|
|
|
#define NAS_PORT_ID_ATTRIBUTE 87
|
|
|
|
|
|
|
|
#define SMC_AAAID_ATTRIBUTE 651
|
|
|
|
#define SMC_VPNID_ATTRIBUTE 652
|
|
|
|
#define SMC_VPNNAME_ATTRIBUTE 653
|
|
|
|
#define SMC_RANID_ATTRIBUTE 654
|
|
|
|
#define SMC_RANIP_ATTRIBUTE 655
|
|
|
|
#define SMC_RANNAME_ATTRIBUTE 656
|
|
|
|
#define SMC_POPID_ATTRIBUTE 657
|
|
|
|
#define SMC_POPNAME_ATTRIBUTE 658
|
|
|
|
#define SMC_SMCID_ATTRIBUTE 659
|
|
|
|
#define SMC_RECEIVE_TIME_ATTRIBUTE 660
|
|
|
|
#define SMC_STAT_TIME_ATTRIBUTE 661
|
|
|
|
|
2004-10-21 02:06:37 +00:00
|
|
|
#define OPSI_FLAGS_ATTRIBUTE 674
|
|
|
|
#define OPSI_APPLICATION_NAME_ATTRIBUTE 675
|
2004-07-21 06:31:33 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Published API functions. NOTE, "local" API functions
|
|
|
|
* only valid from the packet-opsi file.
|
|
|
|
*/
|
|
|
|
|
|
|
|
extern void decode_string_attribute(tvbuff_t *tvb, proto_tree *tree, int* hfValue, int offset, int length);
|
|
|
|
extern void decode_ipv4_attribute(tvbuff_t *tvb, proto_tree *tree, int* hfValue, int offset, int length);
|
|
|
|
extern void decode_longint_attribute(tvbuff_t *tvb, proto_tree *tree, int* hfValue, int offset, int length);
|
|
|
|
extern void decode_value_string_attribute(tvbuff_t *tvb, proto_tree *tree, int* hfValue, int offset, int length);
|
|
|
|
extern void decode_time_attribute(tvbuff_t *tvb, proto_tree *tree, int* hfValue, int offset, int length);
|
|
|
|
#endif
|