Ethereal-dev: Re: [ethereal-dev] Diameter (using new prefs.c)
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: David Frascone <dave@xxxxxxxxxxxx>
Date: Mon, 17 Jul 2000 18:01:04 -0500
Comments? Should I include a new tarball? Are my changes going in? I'm hesitant to make any new changes till I'm sure these are going in. I still need to add support for Diameter over TCP and eventually SCTP On Fri, Jul 14, 2000 at 09:29:48AM -0500, David Frascone wrote: > On Thu, Jul 13, 2000 at 10:58:40PM -0500, Gilbert Ramirez wrote: > > We really do need a global way of modifying port registrations, for all > > protocols. This is a novel technique that will work well for this > > situation (diameter), but we still need to come up with code for > > doing it globally. > > > > When are you going to post the diameter dissector? > > > > It's been attached to the last two messages, in the tarball. In case the > mailing list has been dropping attachments, I'll include it here. > > ---------------------packet-diameter.c----------------------- > /* packet-diameter.c > * Routines for DIAMETER packet disassembly > * > * $Id$ > * > * Copyright (c) 2000 by David Frascone <chaos@xxxxxxxxxxxxxx> > * > * Ethereal - Network traffic analyzer > * By Johan Feyaerts > * Copyright 1999 Johan Feyaerts > * 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. > */ > > #ifdef HAVE_CONFIG_H > #include "config.h" > #endif > > #ifdef HAVE_SYS_TYPES_H > # include <sys/types.h> > #endif > > #ifdef HAVE_NETINET_IN_H > #include <netinet/in.h> > #endif > > #include <stdio.h> > #include <stdlib.h> > #include <ctype.h> > #include <glib.h> > #include "packet.h" > #include "resolv.h" > #include "prefs.h" > > /* This must be defined before we include our dictionary defs */ > > typedef struct _value_value_pair { > guint16 val1; > guint16 val2; > } value_value_pair; > > typedef enum { > DIAMETER_DATA=1, > DIAMETER_STRING, > DIAMETER_ADDRESS, > DIAMETER_INTEGER32, > DIAMETER_INTEGER64, > DIAMETER_TIME, > DIAMETER_COMPLEX > } diameterDataTypes; > > #include "packet-diameter.h" > > #define COMMAND_CODE_OFFSET 20 > #define NTP_TIME_DIFF (2208988800UL) > > #define UDP_PORT_DIAMETER 2645 > /* #define UDP_PORT_DIAMETER 1812 -- Compiling this in breaks RADIUS */ > > static int proto_diameter = -1; > static int hf_diameter_length = -1; > static int hf_diameter_code = -1; > static int hf_diameter_id =-1; > static int hf_diameter_flags = -1; > static int hf_diameter_ns = -1; > static int hf_diameter_nr = -1; > > static gint ett_diameter = -1; > static gint ett_diameter_avp = -1; > static gint ett_diameter_avpinfo = -1; > > static char gbl_diameterString[200]; > static int gbl_diameterPort=UDP_PORT_DIAMETER; > gboolean gbl_commandCodeInHeader = FALSE; > > typedef struct _e_diameterhdr { > guint8 code; /* Must be 254 for diameter */ > guint8 flagsVer; > guint16 pktLength; > guint32 identifier; > union { > struct { > guint16 nextSend; > guint16 nextReceived; > } old; > struct { > guint32 commandCode; > guint32 vendorId; > guint16 nextSend; > guint16 nextReceived; > } new; > } u; > } e_diameterhdr; > > typedef struct _e_avphdr { > guint32 avp_type; > guint16 avp_length; > guint16 avp_flags; > guint32 avp_vendorId; /* optional */ > guint32 avp_tag; /* optional */ > > } e_avphdr; > > #define AUTHENTICATOR_LENGTH 12 > > #define DIAM_FLAGS_A 0x10 > #define DIAM_FLAGS_W 0x08 > #define AVP_FLAGS_P 0x0010 > #define AVP_FLAGS_T 0x0008 > #define AVP_FLAGS_V 0x0004 > #define AVP_FLAGS_R 0x0002 > #define AVP_FLAGS_M 0x0001 > > void proto_reg_handoff_diameter(void); > > static guint32 match_numval(guint32 val, const value_value_pair *vs) > { > guint32 i = 0; > > while (vs[i].val1) { > if (vs[i].val1 == val) > return(vs[i].val2); > i++; > } > > return(0); > } > > static gchar *rdconvertbufftostr(gchar *dest,guint8 length,const guint8 *pd) > { > /*converts the raw buffer into printable text */ > guint32 i; > guint32 totlen=0; > > dest[0]='"'; > dest[1]=0; > totlen=1; > for (i=0; i < (guint32)length; i++) > { > if( isalnum((int)pd[i])||ispunct((int)pd[i]) > ||((int)pd[i]==' ')) { > dest[totlen]=(gchar)pd[i]; > totlen++; > } > else > { > sprintf(&(dest[totlen]), "\\%03u", pd[i]); > totlen=totlen+strlen(&(dest[totlen])); > } > } > dest[totlen]='"'; > dest[totlen+1]=0; > return dest; > } > > static gchar *rd_match_strval(guint32 val, const value_string *vs) { > gchar *result; > result=match_strval(val,vs); > if (result == NULL ) { > result="Undefined"; > } > return result; > } > static char *complexValCheck(e_avphdr *avp, const char *data, size_t dataLen) > { > const char *rawData; > static char returnStr[1024]; > > switch (avp->avp_type) { > case DIAMETER_ATT_INTEGRITY_CHECK_VALUE: > { > struct { > guint32 transform; > guint32 keyid; > } icv; > > memcpy(&icv, data, 8); > icv.transform=ntohl(icv.transform); > icv.keyid=ntohl(icv.keyid); > rawData = &data[8]; > > sprintf(returnStr, > "transform: 0x%08x (%d) keyid: 0x%08x (%d) Hash: ", > icv.transform, icv.transform, icv.keyid, icv.keyid); > > rdconvertbufftostr(&returnStr[strlen(returnStr)], > dataLen-8, > rawData); > return returnStr; > } > } > > return NULL;; > } /* complexValCheck */ > static char *customValCheck(int code, int value) > { > switch (code) { > case DIAMETER_ATT_QOS_SERVICE_TYPE: > return rd_match_strval(value, diameter_qos_service_type_vals); > break; > case DIAMETER_ATT_SERVICE_TYPE: > return rd_match_strval(value, diameter_service_type_vals); > break; > case DIAMETER_ATT_PROHIBIT: > return rd_match_strval(value, diameter_prohibit_vals); > break; > case DIAMETER_ATT_PROMPT: > return rd_match_strval(value, diameter_prompt_vals); > break; > case DIAMETER_ATT_SOURCE_PORT: > return rd_match_strval(value, diameter_source_port_vals); > break; > case DIAMETER_ATT_NAS_PORT_TYPE: > return rd_match_strval(value, diameter_nas_port_type_vals); > break; > case DIAMETER_ATT_INTERFACE_ADDRESS: > return rd_match_strval(value, diameter_interface_address_vals); > break; > case DIAMETER_ATT_FRAMED_ROUTING: > return rd_match_strval(value, diameter_framed_routing_vals); > break; > case DIAMETER_ATT_COMMAND_CODE: > return rd_match_strval(value, diameter_command_code_vals); > break; > case DIAMETER_ATT_FRAMED_IP_ADDRESS: > return rd_match_strval(value, diameter_framed_ip_address_vals); > break; > case DIAMETER_ATT_ARAP_ZONE_ACCESS: > return rd_match_strval(value, diameter_arap_zone_access_vals); > break; > case DIAMETER_ATT_ACCT_AUTHENTIC: > return rd_match_strval(value, diameter_acct_authentic_vals); > break; > case DIAMETER_ATT_FRAMED_PROTOCOL: > return rd_match_strval(value, diameter_framed_protocol_vals); > break; > case DIAMETER_ATT_FRAMED_COMPRESSION: > return rd_match_strval(value, diameter_framed_compression_vals); > break; > case DIAMETER_ATT_AUTHENTICATION_TYPE: > return rd_match_strval(value, diameter_authentication_type_vals); > break; > case DIAMETER_ATT_ACCT_TERMINATE_CAUSE: > return rd_match_strval(value, diameter_acct_terminate_cause_vals); > break; > case DIAMETER_ATT_PROTOCOL: > return rd_match_strval(value, diameter_protocol_vals); > break; > case DIAMETER_ATT_DESTINATION_PORT: > return rd_match_strval(value, diameter_destination_port_vals); > break; > case DIAMETER_ATT_TERMINATION_ACTION: > return rd_match_strval(value, diameter_termination_action_vals); > break; > case DIAMETER_ATT_EXTENSION_ID: > return rd_match_strval(value, diameter_extension_id_vals); > break; > case DIAMETER_ATT_MERIT_LAS_CODE: > return rd_match_strval(value, diameter_merit_las_code_vals); > break; > case DIAMETER_ATT_LOGIN_SERVICE: > return rd_match_strval(value, diameter_login_service_vals); > break; > case DIAMETER_ATT_RSVP_SERVICE_TYPE: > return rd_match_strval(value, diameter_rsvp_service_type_vals); > break; > case DIAMETER_ATT_REBOOT_TYPE: > return rd_match_strval(value, diameter_reboot_type_vals); > break; > case DIAMETER_ATT_ACCT_STATUS_TYPE: > return rd_match_strval(value, diameter_acct_status_type_vals); > break; > } > > return NULL; > } > > static gchar *rd_value_to_str(e_avphdr *avph,const u_char *pd, int offset) > { > int print_type; > gchar *cont; > guint32 intval; > int dataLen; > char *valstr; > static char buffer[1024]; > > dataLen = avph->avp_length - sizeof(e_avphdr); > > if (!(avph->avp_flags & AVP_FLAGS_V)) > dataLen += 4; > if (!(avph->avp_flags & AVP_FLAGS_T)) > dataLen += 4; > > /* prints the values of the attribute value pairs into a text buffer */ > > print_type=match_numval(avph->avp_type,diameter_printinfo); > /* Default begin */ > sprintf(buffer,"Value: "); > cont=&buffer[strlen(buffer)]; > switch(print_type) > { > case DIAMETER_COMPLEX: > valstr=complexValCheck(avph, &(pd[offset]), dataLen); > if (valstr) { > strcpy(cont, valstr); > break; > } > > /* Intentional fall through */ > case DIAMETER_DATA: > case DIAMETER_STRING: > rdconvertbufftostr(cont,dataLen, > &(pd[offset])); > break; > case DIAMETER_ADDRESS: > sprintf(cont,"%u.%u.%u.%u",(guint8)pd[offset], > (guint8)pd[offset+1],(guint8)pd[offset+2], > (guint8)pd[offset+3]); > break; > case DIAMETER_INTEGER32: > /* Check for custom values */ > intval=pntohl(&(pd[offset])); > valstr=customValCheck(avph->avp_type, intval); > if (valstr) { > sprintf(cont,"%s (%u)", valstr, intval); > } else { > sprintf(cont,"%u", intval); > } > break; > case DIAMETER_INTEGER64: > sprintf(cont,"Unsupported Conversion"); > break; > case DIAMETER_TIME: > { > struct tm lt; > intval=pntohl(&(pd[offset])); > intval -= NTP_TIME_DIFF; > lt=*localtime((time_t *)&intval); > strftime(cont, 1024, > "%a, %d %b %Y %H:%M:%S %z",<); > } > break; > > default: > rdconvertbufftostr(cont,dataLen, > &(pd[offset])); > break; > } > if (cont == buffer) { > strcpy(cont,"Unknown Value"); > } > return buffer; > } > > > static void dissect_attribute_value_pairs(const u_char *pd, int offset, > frame_data *fd, proto_tree *tree, int avplength) { > /* adds the attribute value pairs to the tree */ > e_avphdr avph; > gchar *avptpstrval; > gchar *valstr; > guint32 tag=0; > guint32 vendorId=0; > int dataOffset; > int fixAmt; > proto_item *avptf; > proto_tree *avptree; > int vendorOffset, tagOffset; > > if (avplength==0) { > proto_tree_add_text(tree, NullTVB,offset,0, > "No Attribute Value Pairs Found"); > return; > } > > while (avplength > 0 ) { > vendorOffset = tagOffset = 0; > memcpy(&avph,&pd[offset],sizeof(e_avphdr)); > avph.avp_type = ntohl(avph.avp_type); > avph.avp_length = ntohs(avph.avp_length); > avph.avp_flags = ntohs(avph.avp_flags); > > if (avph.avp_flags & AVP_FLAGS_V) { > vendorId = ntohl(avph.avp_vendorId); > vendorOffset = 8; > if (avph.avp_flags & AVP_FLAGS_T) { > tag = ntohl(avph.avp_tag); > tagOffset = 12; > dataOffset = sizeof(e_avphdr); > } else { > /* only a vendor id */ > dataOffset = sizeof(e_avphdr) - sizeof(guint32); > } > } else { > if (avph.avp_flags & AVP_FLAGS_T) { > /* tag in vendor field */ > tag = ntohl(avph.avp_vendorId); > tagOffset = 8; > dataOffset = sizeof(e_avphdr) - sizeof(guint32); > } else { > /* No vendor or tag info */ > dataOffset = sizeof(e_avphdr) - > (2*sizeof(guint32)); > } > } > > /* > * Fix byte-alignment > */ > fixAmt = 4 - (avph.avp_length % 4); > if (fixAmt == 4) fixAmt = 0; > avplength=avplength - (avph.avp_length + fixAmt); > avptpstrval=match_strval(avph.avp_type, diameter_attrib_type_vals); > if (avptpstrval == NULL) avptpstrval="Unknown Type"; > if (!BYTES_ARE_IN_FRAME(offset, avph.avp_length)) { > break; > } > avptf = proto_tree_add_text(tree,NullTVB, > offset, avph.avp_length, > "%s(%d) l:0x%x (%d bytes)", > avptpstrval,avph.avp_type,avph.avp_length, > avph.avp_length); > avptree = proto_item_add_subtree(avptf, > ett_diameter_avpinfo); > if (avptree !=NULL) { > proto_tree_add_text(avptree,NullTVB, > offset, 4, > "AVP Code: %s(%d)", > avptpstrval,avph.avp_type); > proto_tree_add_text(avptree,NullTVB, > offset+4 , 2, > "Length: 0x%x(%d bytes)", > avph.avp_length, avph.avp_length); > proto_tree_add_text(avptree,NullTVB, > offset+6, 2, > "Flags: P:%d T:%d V:%d R:%d M:%d", > (avph.avp_flags & AVP_FLAGS_P)?1:0, > (avph.avp_flags & AVP_FLAGS_T)?1:0, > (avph.avp_flags & AVP_FLAGS_V)?1:0, > (avph.avp_flags & AVP_FLAGS_R)?1:0, > (avph.avp_flags & AVP_FLAGS_M)?1:0); > if (vendorOffset) { > proto_tree_add_text(avptree,NullTVB, > offset+vendorOffset, 4, > "VendorId: 0x%08x (%d)", > vendorId, vendorId); > } > if (tagOffset) { > proto_tree_add_text(avptree,NullTVB, > offset+tagOffset, 4, > "Tag: 0x%08x (%d)", > tag, tag); > } > valstr=rd_value_to_str(&avph, pd, offset+dataOffset); > proto_tree_add_text(avptree,NullTVB, > offset+dataOffset, avph.avp_length - dataOffset, > "Data: (%d bytes) %s", > avph.avp_length - dataOffset, valstr); > } > offset=offset+avph.avp_length + fixAmt; > if (avph.avp_length == 0) { > break; > } > } > } > > static void dissect_diameter(const u_char *pd, int offset, frame_data *fd, > proto_tree *tree) > { > proto_tree *diameter_tree,*avptree; > proto_item *ti,*avptf; > int avplength,hdrlength, offsetavp; > e_diameterhdr dh; > int commandCode; > char buffer[2000]; > int nextSend, nextReceived; > > gchar *codestrval; > > > if (gbl_commandCodeInHeader) > hdrlength=sizeof(e_diameterhdr); > else > hdrlength = sizeof(e_diameterhdr) - (2 * sizeof(uint32_t)); > > memcpy(&dh,&pd[offset],hdrlength); > /* Fix byte ordering in our static structure */ > dh.pktLength = ntohs(dh.pktLength); > dh.identifier = ntohl(dh.identifier); > > /* Our code is in first avp */ > if (gbl_commandCodeInHeader) { > dh.u.new.nextSend = ntohs(dh.u.new.nextSend); > dh.u.new.nextReceived = ntohs(dh.u.new.nextReceived); > dh.u.new.commandCode = ntohl(dh.u.new.commandCode); > dh.u.new.vendorId = ntohl(dh.u.new.vendorId); > nextSend = dh.u.new.nextSend; > nextReceived = dh.u.new.nextReceived; > commandCode = dh.u.new.commandCode; > } else { > dh.u.old.nextSend = ntohs(dh.u.old.nextSend); > dh.u.old.nextReceived = ntohs(dh.u.old.nextReceived); > nextSend = dh.u.old.nextSend; > nextReceived = dh.u.old.nextReceived; > memcpy(&commandCode, &pd[offset+COMMAND_CODE_OFFSET], 4); > commandCode = ntohl(commandCode); > } > > codestrval= match_strval(commandCode,diameter_command_code_vals); > if (codestrval==NULL) { > codestrval="Unknown Packet"; > } > if (check_col(fd, COL_PROTOCOL)) > col_add_str(fd, COL_PROTOCOL, "DIAMETER"); > if (check_col(fd, COL_INFO)) { > if (DIAM_FLAGS_A & dh.flagsVer) { > sprintf(buffer,"ACK (id=%d, l=%d, s=%d, r=%d)", > dh.identifier, dh.pktLength, nextSend, > nextReceived); > } else { > sprintf(buffer,"%s(%d) (id=%d, l=%d, s=%d, r=%d)", > codestrval,commandCode, dh.identifier, dh.pktLength, > nextSend, nextReceived); > } > col_add_fstr(fd,COL_INFO,buffer); > } > > if (tree) { > > ti = proto_tree_add_protocol_format(tree, proto_diameter, NullTVB, > offset, dh.pktLength, "%s", > gbl_diameterString); > diameter_tree = proto_item_add_subtree(ti, ett_diameter); > > if (!(DIAM_FLAGS_A & dh.flagsVer)) { > proto_tree_add_uint_format(diameter_tree, > hf_diameter_code, > NullTVB, > offset+0, > 1, dh.code, "Packet code:0x%02x", > dh.code); > } > > proto_tree_add_uint_format(diameter_tree, > hf_diameter_flags, > NullTVB, offset+1, 1, > dh.flagsVer, > "Packet flags/Version: 0x%02x (Flags:0x%x," > " A:%d W:%d Version=0x%1x (%d)", > dh.flagsVer, (dh.flagsVer&0xf8)>>3, > (DIAM_FLAGS_A & dh.flagsVer)?1:0, > (DIAM_FLAGS_W & dh.flagsVer)?1:0, > dh.flagsVer&0x07, dh.flagsVer&0x07); > proto_tree_add_uint_format(diameter_tree, > hf_diameter_length, NullTVB, > offset+2, 2, > dh.pktLength, > "Packet length: 0x%04x (%d)",dh.pktLength, > dh.pktLength); > proto_tree_add_uint_format(diameter_tree,hf_diameter_id, > NullTVB, offset+4, 4, > dh.identifier, "Packet identifier: 0x%08x (%d)", > dh.identifier, dh.identifier); > if (gbl_commandCodeInHeader) { > proto_tree_add_uint_format(diameter_tree,hf_diameter_id, > NullTVB, offset+8, 4, > dh.identifier, "Command Code: 0x%08x (%d:%s)", > dh.u.new.commandCode, dh.u.new.commandCode, > codestrval); > proto_tree_add_uint_format(diameter_tree,hf_diameter_id, > NullTVB, offset+12, 4, > dh.identifier, "VendorId: 0x%08x (%d)", > dh.u.new.vendorId, dh.u.new.vendorId); > proto_tree_add_uint_format(diameter_tree, > hf_diameter_ns, NullTVB, > offset+16, 2, > nextSend, > "Ns: 0x%02x(%d)",nextSend, nextSend); > > proto_tree_add_uint_format(diameter_tree, > hf_diameter_nr, NullTVB, > offset+20, 2, > nextReceived, > "Nr: 0x%02x(%d)", nextReceived, > nextReceived); > } else { > proto_tree_add_uint_format(diameter_tree, > hf_diameter_ns, NullTVB, > offset+8, 2, > nextSend, > "Ns: 0x%02x(%d)",nextSend, nextSend); > > proto_tree_add_uint_format(diameter_tree, > hf_diameter_nr, NullTVB, > offset+10, 2, > nextReceived, > "Nr: 0x%02x(%d)", nextReceived, > nextReceived); > } > > /* Update the lengths */ > avplength= dh.pktLength -hdrlength; > offsetavp=offset+hdrlength; > > /* list the attribute value pairs */ > > avptf = proto_tree_add_text(diameter_tree, > NullTVB,offset+hdrlength,avplength, > "Attribute value pairs"); > avptree = proto_item_add_subtree(avptf, > ett_diameter_avp); > if (avptree !=NULL) { > dissect_attribute_value_pairs( pd, > offsetavp,fd,avptree,avplength); > } > } > } > > /* registration with the filtering engine */ > void > proto_register_diameter(void) > { > static hf_register_info hf[] = { > { &hf_diameter_code, > { "Code","diameter.code", FT_UINT8, BASE_DEC, NULL, 0x0, > "" }}, > > { &hf_diameter_flags, > { "Flags+Version", "diameter.flags", FT_UINT8, BASE_DEC, NULL, 0x0, > "" }}, > > { &hf_diameter_length, > { "Length","diameter.length", FT_UINT32, BASE_DEC, NULL, 0x0, > "" }}, > > { &hf_diameter_id, > { "Identifier", "diameter.id", FT_UINT32, BASE_DEC, NULL, 0x0, > "" }}, > > { &hf_diameter_ns, > { "Next Send", "diameter.ns", FT_UINT16, BASE_DEC, NULL, 0x0, > "" }}, > { &hf_diameter_nr, > { "Next Received", "diameter.nr", FT_UINT16, BASE_DEC, NULL, 0x0, > "" }}, > > }; > static gint *ett[] = { > &ett_diameter, > &ett_diameter_avp, > &ett_diameter_avpinfo > }; > module_t *diameter_module; > > /* Register a configuration option for port */ > #if 0 > g_warning ("DIAMETER Registering configuration option (port = %d)", > gbl_diameterPort); > #endif > diameter_module = prefs_register_module("Diameter", "Diameter", > proto_reg_handoff_diameter); > prefs_register_uint_preference(diameter_module, "port", > "DIAMETER Port", > "Set the port for DIAMETER messages", 10, > &gbl_diameterPort); > prefs_register_bool_preference(diameter_module, "command_in_header", > "Command code in header", > "Whether the command code is in the header, or in the first AVP", > &gbl_commandCodeInHeader); > > #if 0 > g_warning ("DIAMETER Registering protocol (port = %d)", > gbl_diameterPort); > #endif > proto_diameter = proto_register_protocol (gbl_diameterString, "diameter"); > proto_register_field_array(proto_diameter, hf, array_length(hf)); > proto_register_subtree_array(ett, array_length(ett)); > } > > void > proto_reg_handoff_diameter(void) > { > static int Initialized=FALSE; > static int port=0; > > if (Initialized) { > #if 0 > g_warning ("DIAMETER re-registering handoff (port = %d)", > gbl_diameterPort); > #endif > dissector_delete("udp.port", port, dissect_diameter); > } else { > #if 0 > g_warning ("DIAMETER Registering handoff (port = %d)", > gbl_diameterPort); > #endif > Initialized=TRUE; > } > > /* set port for future deletes */ > port=gbl_diameterPort; > > sprintf(gbl_diameterString, "Diameter Protocol (port %d)", > gbl_diameterPort); > dissector_add("udp.port", gbl_diameterPort, dissect_diameter); > } > -------------------------------end packet-diameter.c----------------- > --------------------packet-diameter.h----------------------- > /* > * Filename: packet-diameter.h > * WARNING: This file was automatically generated by dict2h.pl. Modifications > * will be erased by next invocation of dictionary parser. > */ > > #ifndef _PACKET_DIAMETER_H > #define _PACKET_DIAMETER_H > > /* Attributes */ > #define DIAMETER_ATT_USER_NAME 1 > #define DIAMETER_ATT_USER_PASSWORD 2 > #define DIAMETER_ATT_CHAP_PASSWORD 3 > #define DIAMETER_ATT_NAS_IP_ADDRESS 4 > #define DIAMETER_ATT_NAS_PORT 5 > #define DIAMETER_ATT_SERVICE_TYPE 6 > #define DIAMETER_ATT_FRAMED_PROTOCOL 7 > #define DIAMETER_ATT_FRAMED_IP_ADDRESS 8 > #define DIAMETER_ATT_FRAMED_IP_NETMASK 9 > #define DIAMETER_ATT_FRAMED_ROUTING 10 > #define DIAMETER_ATT_FILTER_ID 11 > #define DIAMETER_ATT_FRAMED_MTU 12 > #define DIAMETER_ATT_FRAMED_COMPRESSION 13 > #define DIAMETER_ATT_LOGIN_IP_HOST 14 > #define DIAMETER_ATT_LOGIN_SERVICE 15 > #define DIAMETER_ATT_LOGIN_TCP_PORT 16 > #define DIAMETER_ATT_OLD_PASSWORD 17 > #define DIAMETER_ATT_REPLY_MESSAGE 18 > #define DIAMETER_ATT_CALLBACK_NUMBER 19 > #define DIAMETER_ATT_CALLBACK_ID 20 > #define DIAMETER_ATT_FRAMED_ROUTE 22 > #define DIAMETER_ATT_FRAMED_IPX_NETWORK 23 > #define DIAMETER_ATT_STATE 24 > #define DIAMETER_ATT_CLASS 25 > #define DIAMETER_ATT_SESSION_TIMEOUT 27 > #define DIAMETER_ATT_IDLE_TIMEOUT 28 > #define DIAMETER_ATT_TERMINATION_ACTION 29 > #define DIAMETER_ATT_CALLED_STATION_ID 30 > #define DIAMETER_ATT_CALLING_STATION_ID 31 > #define DIAMETER_ATT_NAS_IDENTIFIER 32 > #define DIAMETER_ATT_PROXY_STATE 33 > #define DIAMETER_ATT_LOGIN_LAT_SERVICE 34 > #define DIAMETER_ATT_LOGIN_LAT_NODE 35 > #define DIAMETER_ATT_LOGIN_LAT_GROUP 36 > #define DIAMETER_ATT_FRAMED_APPLETALK_LINK 37 > #define DIAMETER_ATT_FRAMED_APPLETALK_NETWORK 38 > #define DIAMETER_ATT_FRAMED_APPLETALK_ZONE 39 > #define DIAMETER_ATT_CHAP_CHALLENGE 60 > #define DIAMETER_ATT_NAS_PORT_TYPE 61 > #define DIAMETER_ATT_PORT_LIMIT 62 > #define DIAMETER_ATT_LOGIN_LAT_PORT 63 > #define DIAMETER_ATT_TUNNEL_TYPE 64 > #define DIAMETER_ATT_TUNNEL_MEDIUM_TYPE 65 > #define DIAMETER_ATT_ACCT_TUNNEL_CLIENT_ENDPOINT 66 > #define DIAMETER_ATT_TUNNEL_SERVER_ENDPOINT 67 > #define DIAMETER_ATT_ACCT_TUNNEL_CONNECTION_ID 68 > #define DIAMETER_ATT_TUNNEL_PASSWORD 69 > #define DIAMETER_ATT_ARAP_PASSWORD 70 > #define DIAMETER_ATT_ARAP_FEATURES 71 > #define DIAMETER_ATT_ARAP_ZONE_ACCESS 72 > #define DIAMETER_ATT_ARAP_SECURITY 73 > #define DIAMETER_ATT_ARAP_SECURITY_DATA 74 > #define DIAMETER_ATT_PASSWORD_RETRY 75 > #define DIAMETER_ATT_PROMPT 76 > #define DIAMETER_ATT_CONNECT_INFO 77 > #define DIAMETER_ATT_CONFIGURATION_TOKEN 78 > #define DIAMETER_ATT_EAP_MESSAGE 79 > #define DIAMETER_ATT_SIGNATURE 80 > #define DIAMETER_ATT_ACCT_STATUS_TYPE 40 > #define DIAMETER_ATT_ACCT_DELAY_TIME 41 > #define DIAMETER_ATT_ACCT_INPUT_OCTETS 42 > #define DIAMETER_ATT_ACCT_OUTPUT_OCTETS 43 > #define DIAMETER_ATT_ACCT_SESSION_ID 44 > #define DIAMETER_ATT_ACCT_AUTHENTIC 45 > #define DIAMETER_ATT_ACCT_SESSION_TIME 46 > #define DIAMETER_ATT_ACCT_INPUT_PACKETS 47 > #define DIAMETER_ATT_ACCT_OUTPUT_PACKETS 48 > #define DIAMETER_ATT_ACCT_TERMINATE_CAUSE 49 > #define DIAMETER_ATT_ACCT_MULTI_SESSION_ID 50 > #define DIAMETER_ATT_ACCT_LINK_COUNT 51 > #define DIAMETER_ATT_MERIT_ENCAPSULATED 141 > #define DIAMETER_ATT_MERIT_REPLY_IF_ACK_MESSAGE 144 > #define DIAMETER_ATT_MERIT_LAS_START_TIME 145 > #define DIAMETER_ATT_MERIT_LAS_CODE 146 > #define DIAMETER_ATT_MERIT_LAS_DURATION 147 > #define DIAMETER_ATT_MERIT_LOCAL_DURATION 148 > #define DIAMETER_ATT_MERIT_HUNTGROUP_SERVICE 149 > #define DIAMETER_ATT_MERIT_PORT_ENTRY 150 > #define DIAMETER_ATT_MERIT_PROXY_ACTION 211 > #define DIAMETER_ATT_MERIT_TOKEN 213 > #define DIAMETER_ATT_MERIT_OWNERSHIP 219 > #define DIAMETER_ATT_MERIT_SUBGROUP 220 > #define DIAMETER_ATT_MERIT_HUNTGROUP_NAME 221 > #define DIAMETER_ATT_MERIT_USER_ID 222 > #define DIAMETER_ATT_MERIT_USER_REALM 223 > #define DIAMETER_ATT_COMMAND_CODE 256 > #define DIAMETER_ATT_EXTENSION_ID 258 > #define DIAMETER_ATT_INTEGRITY_CHECK_VALUE 259 > #define DIAMETER_ATT_ENCRYPTED_PAYLOAD 260 > #define DIAMETER_ATT_NONCE 261 > #define DIAMETER_ATT_TIMESTAMP 262 > #define DIAMETER_ATT_SESSION_ID 263 > #define DIAMETER_ATT_VENDOR_NAME 266 > #define DIAMETER_ATT_FIRMWARE_REVISION 267 > #define DIAMETER_ATT_RESULT_CODE 268 > #define DIAMETER_ATT_DESTINATION_NAI 269 > #define DIAMETER_ATT_REBOOT_TYPE 271 > #define DIAMETER_ATT_REBOOT_TIME 272 > #define DIAMETER_ATT_FAILED_AVP 279 > #define DIAMETER_ATT_RECEIVE_WINDOW 277 > #define DIAMETER_ATT_REDIRECT_HOST 278 > #define DIAMETER_ATT_IP_PORT 281 > #define DIAMETER_ATT_ACCOUNTING_RECORD_TYPE 480 > #define DIAMETER_ATT_ADIF_RECORD 481 > #define DIAMETER_ATT_ACCOUNTING_INTERIM_INTERVAL 482 > #define DIAMETER_ATT_ACCOUNTING_DELIVERY_MAX_BATCH 483 > #define DIAMETER_ATT_ACCOUNTING_DELIVERY_MAX_DELAY 484 > #define DIAMETER_ATT_ACCOUNTING_RECORD_NUMBER 485 > #define DIAMETER_ATT_MIP_REGISTRATION_REQUEST 320 > #define DIAMETER_ATT_MIP_REGISTRATION_REPLY 321 > #define DIAMETER_ATT_MN_FA_CHALLENGE_LENGTH 322 > #define DIAMETER_ATT_MN_FA_RESPONSE 323 > #define DIAMETER_ATT_MOBILE_NODE_ADDRESS 333 > #define DIAMETER_ATT_HOME_AGENT_ADDRESS 334 > #define DIAMETER_ATT_PREVIOUS_FA_NAI 335 > #define DIAMETER_ATT_MN_AAA_SPI 336 > #define DIAMETER_ATT_FOREIGN_HA_AVAIL 337 > #define DIAMETER_ATT_MN_TO_FA_KEY 325 > #define DIAMETER_ATT_MN_TO_HA_KEY 331 > #define DIAMETER_ATT_FA_TO_MN_KEY 326 > #define DIAMETER_ATT_FA_TO_HA_KEY 328 > #define DIAMETER_ATT_HA_TO_MN_KEY 332 > #define DIAMETER_ATT_HA_TO_FA_KEY 329 > #define DIAMETER_ATT_FA_MN_PREFERRED_SPI 324 > #define DIAMETER_ATT_FA_HA_PREFERRED_SPI 327 > #define DIAMETER_ATT_FILTER_RULE 400 > #define DIAMETER_ATT_REQUEST_TYPE 401 > #define DIAMETER_ATT_EAP_PAYLOAD 402 > #define DIAMETER_ATT_CMS_DATA 310 > #define DIAMETER_ATT_RES_MGMT_INDEX 573 > #define DIAMETER_ATT_RES_MGMT_TOKEN 574 > #define DIAMETER_ATT_SOURCE_HOST 600 > #define DIAMETER_ATT_DESTINATION_HOST 601 > #define DIAMETER_ATT_SOURCE_PORT 602 > #define DIAMETER_ATT_DESTINATION_PORT 603 > #define DIAMETER_ATT_PROTOCOL 604 > #define DIAMETER_ATT_RSVP_SERVICE_TYPE 605 > #define DIAMETER_ATT_TOKEN_BUCKET_RATE 606 > #define DIAMETER_ATT_TOKEN_BUCKET_SIZE 607 > #define DIAMETER_ATT_PEAK_DATA_RATE 608 > #define DIAMETER_ATT_MINIMUM_POLICED_UNIT 609 > #define DIAMETER_ATT_MAXIMUM_PACKET_SIZE 610 > #define DIAMETER_ATT_QOS_RATE 611 > #define DIAMETER_ATT_SLACK_TERM 612 > #define DIAMETER_ATT_TOS_DS_VALUE 613 > #define DIAMETER_ATT_INTERFACE_ADDRESS 614 > #define DIAMETER_ATT_QOS_SERVICE_TYPE 615 > #define DIAMETER_ATT_VOIP_CALLER 686 > #define DIAMETER_ATT_VOIP_CALLEE 687 > #define DIAMETER_ATT_VOIP_CHALLENGE 688 > #define DIAMETER_ATT_VOIP_RESPONSE 689 > #define DIAMETER_ATT_VOIP_SESSION_LENGTH 690 > #define DIAMETER_ATT_COMMENT 1024 > #define DIAMETER_ATT_XVALUE 1025 > #define DIAMETER_ATT_XSTRING 1026 > #define DIAMETER_ATT_AUTHENTICATION_TYPE 1027 > #define DIAMETER_ATT_PROHIBIT 1028 > #define DIAMETER_ATT_USER_CATEGORY 1029 > #define DIAMETER_ATT_GROUP_NAME 1030 > #define DIAMETER_ATT_ENCRYPTED_PASSWORD 1031 > #define DIAMETER_ATT_EXPIRATION 1032 > #define DIAMETER_ATT_PASSWORD 1033 > #define DIAMETER_ATT_SIMULTANEOUS_USE 1034 > #define DIAMETER_ATT_SESSION_LIMIT 1034 > #define DIAMETER_ATT_SERVER_NAME 1035 > #define DIAMETER_ATT_FRAMED_IP_ADDRESS_POOL_NAME 1036 > #define DIAMETER_ATT_SERVICE_CLASS 1037 > #define DIAMETER_ATT_DENY_MESSAGE 1038 > #define DIAMETER_ATT_SOURCE_SUBNET 1039 > #define DIAMETER_ATT_DESTINATION_SUBNET 1040 > #define DIAMETER_ATT_MAX_QOS_RATE 1041 > #define DIAMETER_ATT_ACCOUNTING_ADIF_RECORD 2000 > > > /* Attribute to String table */ > > static value_string diameter_attrib_type_vals[] = { > {DIAMETER_ATT_USER_NAME, "User-Name"}, > {DIAMETER_ATT_USER_PASSWORD, "User-Password"}, > {DIAMETER_ATT_CHAP_PASSWORD, "CHAP-Password"}, > {DIAMETER_ATT_NAS_IP_ADDRESS, "NAS-IP-Address"}, > {DIAMETER_ATT_NAS_PORT, "NAS-Port"}, > {DIAMETER_ATT_SERVICE_TYPE, "Service-Type"}, > {DIAMETER_ATT_FRAMED_PROTOCOL, "Framed-Protocol"}, > {DIAMETER_ATT_FRAMED_IP_ADDRESS, "Framed-IP-Address"}, > {DIAMETER_ATT_FRAMED_IP_NETMASK, "Framed-IP-Netmask"}, > {DIAMETER_ATT_FRAMED_ROUTING, "Framed-Routing"}, > {DIAMETER_ATT_FILTER_ID, "Filter-Id"}, > {DIAMETER_ATT_FRAMED_MTU, "Framed-MTU"}, > {DIAMETER_ATT_FRAMED_COMPRESSION, "Framed-Compression"}, > {DIAMETER_ATT_LOGIN_IP_HOST, "Login-IP-Host"}, > {DIAMETER_ATT_LOGIN_SERVICE, "Login-Service"}, > {DIAMETER_ATT_LOGIN_TCP_PORT, "Login-TCP-Port"}, > {DIAMETER_ATT_OLD_PASSWORD, "Old-Password"}, > {DIAMETER_ATT_REPLY_MESSAGE, "Reply-Message"}, > {DIAMETER_ATT_CALLBACK_NUMBER, "Callback-Number"}, > {DIAMETER_ATT_CALLBACK_ID, "Callback-Id"}, > {DIAMETER_ATT_FRAMED_ROUTE, "Framed-Route"}, > {DIAMETER_ATT_FRAMED_IPX_NETWORK, "Framed-IPX-Network"}, > {DIAMETER_ATT_STATE, "State"}, > {DIAMETER_ATT_CLASS, "Class"}, > {DIAMETER_ATT_SESSION_TIMEOUT, "Session-Timeout"}, > {DIAMETER_ATT_IDLE_TIMEOUT, "Idle-Timeout"}, > {DIAMETER_ATT_TERMINATION_ACTION, "Termination-Action"}, > {DIAMETER_ATT_CALLED_STATION_ID, "Called-Station-Id"}, > {DIAMETER_ATT_CALLING_STATION_ID, "Calling-Station-Id"}, > {DIAMETER_ATT_NAS_IDENTIFIER, "NAS-Identifier"}, > {DIAMETER_ATT_PROXY_STATE, "Proxy-State"}, > {DIAMETER_ATT_LOGIN_LAT_SERVICE, "Login-LAT-Service"}, > {DIAMETER_ATT_LOGIN_LAT_NODE, "Login-LAT-Node"}, > {DIAMETER_ATT_LOGIN_LAT_GROUP, "Login-LAT-Group"}, > {DIAMETER_ATT_FRAMED_APPLETALK_LINK, "Framed-AppleTalk-Link"}, > {DIAMETER_ATT_FRAMED_APPLETALK_NETWORK, "Framed-AppleTalk-Network"}, > {DIAMETER_ATT_FRAMED_APPLETALK_ZONE, "Framed-AppleTalk-Zone"}, > {DIAMETER_ATT_CHAP_CHALLENGE, "CHAP-Challenge"}, > {DIAMETER_ATT_NAS_PORT_TYPE, "NAS-Port-Type"}, > {DIAMETER_ATT_PORT_LIMIT, "Port-Limit"}, > {DIAMETER_ATT_LOGIN_LAT_PORT, "Login-LAT-Port"}, > {DIAMETER_ATT_TUNNEL_TYPE, "Tunnel-Type"}, > {DIAMETER_ATT_TUNNEL_MEDIUM_TYPE, "Tunnel-Medium-Type"}, > {DIAMETER_ATT_ACCT_TUNNEL_CLIENT_ENDPOINT, "Acct-Tunnel-Client-Endpoint"}, > {DIAMETER_ATT_TUNNEL_SERVER_ENDPOINT, "Tunnel-Server-Endpoint"}, > {DIAMETER_ATT_ACCT_TUNNEL_CONNECTION_ID, "Acct-Tunnel-Connection-ID"}, > {DIAMETER_ATT_TUNNEL_PASSWORD, "Tunnel-Password"}, > {DIAMETER_ATT_ARAP_PASSWORD, "ARAP-Password"}, > {DIAMETER_ATT_ARAP_FEATURES, "ARAP-Features"}, > {DIAMETER_ATT_ARAP_ZONE_ACCESS, "ARAP-Zone-Access"}, > {DIAMETER_ATT_ARAP_SECURITY, "ARAP-Security"}, > {DIAMETER_ATT_ARAP_SECURITY_DATA, "ARAP-Security-Data"}, > {DIAMETER_ATT_PASSWORD_RETRY, "Password-Retry"}, > {DIAMETER_ATT_PROMPT, "Prompt"}, > {DIAMETER_ATT_CONNECT_INFO, "Connect-Info"}, > {DIAMETER_ATT_CONFIGURATION_TOKEN, "Configuration-Token"}, > {DIAMETER_ATT_EAP_MESSAGE, "EAP-Message"}, > {DIAMETER_ATT_SIGNATURE, "Signature"}, > {DIAMETER_ATT_ACCT_STATUS_TYPE, "Acct-Status-Type"}, > {DIAMETER_ATT_ACCT_DELAY_TIME, "Acct-Delay-Time"}, > {DIAMETER_ATT_ACCT_INPUT_OCTETS, "Acct-Input-Octets"}, > {DIAMETER_ATT_ACCT_OUTPUT_OCTETS, "Acct-Output-Octets"}, > {DIAMETER_ATT_ACCT_SESSION_ID, "Acct-Session-Id"}, > {DIAMETER_ATT_ACCT_AUTHENTIC, "Acct-Authentic"}, > {DIAMETER_ATT_ACCT_SESSION_TIME, "Acct-Session-Time"}, > {DIAMETER_ATT_ACCT_INPUT_PACKETS, "Acct-Input-Packets"}, > {DIAMETER_ATT_ACCT_OUTPUT_PACKETS, "Acct-Output-Packets"}, > {DIAMETER_ATT_ACCT_TERMINATE_CAUSE, "Acct-Terminate-Cause"}, > {DIAMETER_ATT_ACCT_MULTI_SESSION_ID, "Acct-Multi-Session-Id"}, > {DIAMETER_ATT_ACCT_LINK_COUNT, "Acct-Link-Count"}, > {DIAMETER_ATT_MERIT_ENCAPSULATED, "Merit.Encapsulated"}, > {DIAMETER_ATT_MERIT_REPLY_IF_ACK_MESSAGE, "Merit.Reply-If-Ack-Message"}, > {DIAMETER_ATT_MERIT_LAS_START_TIME, "Merit.LAS-Start-Time"}, > {DIAMETER_ATT_MERIT_LAS_CODE, "Merit.LAS-Code"}, > {DIAMETER_ATT_MERIT_LAS_DURATION, "Merit.LAS-Duration"}, > {DIAMETER_ATT_MERIT_LOCAL_DURATION, "Merit.Local-Duration"}, > {DIAMETER_ATT_MERIT_HUNTGROUP_SERVICE, "Merit.Huntgroup-Service"}, > {DIAMETER_ATT_MERIT_PORT_ENTRY, "Merit.Port-Entry"}, > {DIAMETER_ATT_MERIT_PROXY_ACTION, "Merit.Proxy-Action"}, > {DIAMETER_ATT_MERIT_TOKEN, "Merit.Token"}, > {DIAMETER_ATT_MERIT_OWNERSHIP, "Merit.Ownership"}, > {DIAMETER_ATT_MERIT_SUBGROUP, "Merit.Subgroup"}, > {DIAMETER_ATT_MERIT_HUNTGROUP_NAME, "Merit.Huntgroup-Name"}, > {DIAMETER_ATT_MERIT_USER_ID, "Merit.User-Id"}, > {DIAMETER_ATT_MERIT_USER_REALM, "Merit.User-Realm"}, > {DIAMETER_ATT_COMMAND_CODE, "Command-Code"}, > {DIAMETER_ATT_EXTENSION_ID, "Extension-Id"}, > {DIAMETER_ATT_INTEGRITY_CHECK_VALUE, "Integrity-Check-Value"}, > {DIAMETER_ATT_ENCRYPTED_PAYLOAD, "Encrypted-Payload"}, > {DIAMETER_ATT_NONCE, "Nonce"}, > {DIAMETER_ATT_TIMESTAMP, "Timestamp"}, > {DIAMETER_ATT_SESSION_ID, "Session-Id"}, > {DIAMETER_ATT_VENDOR_NAME, "Vendor-Name"}, > {DIAMETER_ATT_FIRMWARE_REVISION, "Firmware-Revision"}, > {DIAMETER_ATT_RESULT_CODE, "Result-Code"}, > {DIAMETER_ATT_DESTINATION_NAI, "Destination-NAI"}, > {DIAMETER_ATT_REBOOT_TYPE, "Reboot-Type"}, > {DIAMETER_ATT_REBOOT_TIME, "Reboot-Time"}, > {DIAMETER_ATT_FAILED_AVP, "Failed-AVP"}, > {DIAMETER_ATT_RECEIVE_WINDOW, "Receive-Window"}, > {DIAMETER_ATT_REDIRECT_HOST, "Redirect-Host"}, > {DIAMETER_ATT_IP_PORT, "IP-Port"}, > {DIAMETER_ATT_ACCOUNTING_RECORD_TYPE, "Accounting-Record-Type"}, > {DIAMETER_ATT_ADIF_RECORD, "ADIF-Record"}, > {DIAMETER_ATT_ACCOUNTING_INTERIM_INTERVAL, "Accounting-Interim-Interval"}, > {DIAMETER_ATT_ACCOUNTING_DELIVERY_MAX_BATCH, "Accounting-Delivery-Max-Batch"}, > {DIAMETER_ATT_ACCOUNTING_DELIVERY_MAX_DELAY, "Accounting-Delivery-Max-Delay"}, > {DIAMETER_ATT_ACCOUNTING_RECORD_NUMBER, "Accounting-Record-Number"}, > {DIAMETER_ATT_MIP_REGISTRATION_REQUEST, "MIP-Registration-Request"}, > {DIAMETER_ATT_MIP_REGISTRATION_REPLY, "MIP-Registration-Reply"}, > {DIAMETER_ATT_MN_FA_CHALLENGE_LENGTH, "MN-FA-Challenge-Length"}, > {DIAMETER_ATT_MN_FA_RESPONSE, "MN-FA-Response"}, > {DIAMETER_ATT_MOBILE_NODE_ADDRESS, "Mobile-Node-Address"}, > {DIAMETER_ATT_HOME_AGENT_ADDRESS, "Home-Agent-Address"}, > {DIAMETER_ATT_PREVIOUS_FA_NAI, "Previous-FA-NAI"}, > {DIAMETER_ATT_MN_AAA_SPI, "MN-AAA-SPI"}, > {DIAMETER_ATT_FOREIGN_HA_AVAIL, "Foreign-HA-Avail"}, > {DIAMETER_ATT_MN_TO_FA_KEY, "MN-to-FA-Key"}, > {DIAMETER_ATT_MN_TO_HA_KEY, "MN-to-HA-Key"}, > {DIAMETER_ATT_FA_TO_MN_KEY, "FA-to-MN-Key"}, > {DIAMETER_ATT_FA_TO_HA_KEY, "FA-to-HA-Key"}, > {DIAMETER_ATT_HA_TO_MN_KEY, "HA-to-MN-Key"}, > {DIAMETER_ATT_HA_TO_FA_KEY, "HA-to-FA-Key"}, > {DIAMETER_ATT_FA_MN_PREFERRED_SPI, "FA-MN-Preferred-SPI"}, > {DIAMETER_ATT_FA_HA_PREFERRED_SPI, "FA-HA-Preferred-SPI"}, > {DIAMETER_ATT_FILTER_RULE, "Filter-Rule"}, > {DIAMETER_ATT_REQUEST_TYPE, "Request-Type"}, > {DIAMETER_ATT_EAP_PAYLOAD, "EAP-Payload"}, > {DIAMETER_ATT_CMS_DATA, "CMS-Data"}, > {DIAMETER_ATT_RES_MGMT_INDEX, "Res-Mgmt-Index"}, > {DIAMETER_ATT_RES_MGMT_TOKEN, "Res-Mgmt-Token"}, > {DIAMETER_ATT_SOURCE_HOST, "Source-Host"}, > {DIAMETER_ATT_DESTINATION_HOST, "Destination-Host"}, > {DIAMETER_ATT_SOURCE_PORT, "Source-Port"}, > {DIAMETER_ATT_DESTINATION_PORT, "Destination-Port"}, > {DIAMETER_ATT_PROTOCOL, "Protocol"}, > {DIAMETER_ATT_RSVP_SERVICE_TYPE, "RSVP-Service-Type"}, > {DIAMETER_ATT_TOKEN_BUCKET_RATE, "Token-Bucket-Rate"}, > {DIAMETER_ATT_TOKEN_BUCKET_SIZE, "Token-Bucket-Size"}, > {DIAMETER_ATT_PEAK_DATA_RATE, "Peak-Data-Rate"}, > {DIAMETER_ATT_MINIMUM_POLICED_UNIT, "Minimum-Policed-Unit"}, > {DIAMETER_ATT_MAXIMUM_PACKET_SIZE, "Maximum-Packet-Size"}, > {DIAMETER_ATT_QOS_RATE, "QOS-Rate"}, > {DIAMETER_ATT_SLACK_TERM, "Slack-Term"}, > {DIAMETER_ATT_TOS_DS_VALUE, "TOS-DS-Value"}, > {DIAMETER_ATT_INTERFACE_ADDRESS, "Interface-Address"}, > {DIAMETER_ATT_QOS_SERVICE_TYPE, "QOS-Service-Type"}, > {DIAMETER_ATT_VOIP_CALLER, "Voip-Caller"}, > {DIAMETER_ATT_VOIP_CALLEE, "Voip-Callee"}, > {DIAMETER_ATT_VOIP_CHALLENGE, "Voip-Challenge"}, > {DIAMETER_ATT_VOIP_RESPONSE, "Voip-Response"}, > {DIAMETER_ATT_VOIP_SESSION_LENGTH, "Voip-Session-Length"}, > {DIAMETER_ATT_COMMENT, "Comment"}, > {DIAMETER_ATT_XVALUE, "Xvalue"}, > {DIAMETER_ATT_XSTRING, "Xstring"}, > {DIAMETER_ATT_AUTHENTICATION_TYPE, "Authentication-Type"}, > {DIAMETER_ATT_PROHIBIT, "Prohibit"}, > {DIAMETER_ATT_USER_CATEGORY, "User-Category"}, > {DIAMETER_ATT_GROUP_NAME, "Group-Name"}, > {DIAMETER_ATT_ENCRYPTED_PASSWORD, "Encrypted-Password"}, > {DIAMETER_ATT_EXPIRATION, "Expiration"}, > {DIAMETER_ATT_PASSWORD, "Password"}, > {DIAMETER_ATT_SIMULTANEOUS_USE, "Simultaneous-Use"}, > {DIAMETER_ATT_SESSION_LIMIT, "Session-Limit"}, > {DIAMETER_ATT_SERVER_NAME, "Server-Name"}, > {DIAMETER_ATT_FRAMED_IP_ADDRESS_POOL_NAME, "Framed-IP-Address-Pool-Name"}, > {DIAMETER_ATT_SERVICE_CLASS, "Service-Class"}, > {DIAMETER_ATT_DENY_MESSAGE, "Deny-Message"}, > {DIAMETER_ATT_SOURCE_SUBNET, "Source-Subnet"}, > {DIAMETER_ATT_DESTINATION_SUBNET, "Destination-Subnet"}, > {DIAMETER_ATT_MAX_QOS_RATE, "Max-QOS-Rate"}, > {DIAMETER_ATT_ACCOUNTING_ADIF_RECORD, "Accounting-Adif-Record"}, > {0, (char *)NULL} > }; > > > /* Attribute to Type Table */ > > static value_value_pair diameter_printinfo[] = { > { DIAMETER_ATT_USER_NAME, DIAMETER_STRING }, > { DIAMETER_ATT_USER_PASSWORD, DIAMETER_STRING }, > { DIAMETER_ATT_CHAP_PASSWORD, DIAMETER_STRING }, > { DIAMETER_ATT_NAS_IP_ADDRESS, DIAMETER_ADDRESS }, > { DIAMETER_ATT_NAS_PORT, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_SERVICE_TYPE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_FRAMED_PROTOCOL, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_FRAMED_IP_ADDRESS, DIAMETER_ADDRESS }, > { DIAMETER_ATT_FRAMED_IP_NETMASK, DIAMETER_ADDRESS }, > { DIAMETER_ATT_FRAMED_ROUTING, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_FILTER_ID, DIAMETER_STRING }, > { DIAMETER_ATT_FRAMED_MTU, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_FRAMED_COMPRESSION, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_LOGIN_IP_HOST, DIAMETER_ADDRESS }, > { DIAMETER_ATT_LOGIN_SERVICE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_LOGIN_TCP_PORT, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_OLD_PASSWORD, DIAMETER_STRING }, > { DIAMETER_ATT_REPLY_MESSAGE, DIAMETER_STRING }, > { DIAMETER_ATT_CALLBACK_NUMBER, DIAMETER_STRING }, > { DIAMETER_ATT_CALLBACK_ID, DIAMETER_STRING }, > { DIAMETER_ATT_FRAMED_ROUTE, DIAMETER_STRING }, > { DIAMETER_ATT_FRAMED_IPX_NETWORK, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_STATE, DIAMETER_STRING }, > { DIAMETER_ATT_CLASS, DIAMETER_STRING }, > { DIAMETER_ATT_SESSION_TIMEOUT, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_IDLE_TIMEOUT, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_TERMINATION_ACTION, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_CALLED_STATION_ID, DIAMETER_STRING }, > { DIAMETER_ATT_CALLING_STATION_ID, DIAMETER_STRING }, > { DIAMETER_ATT_NAS_IDENTIFIER, DIAMETER_STRING }, > { DIAMETER_ATT_PROXY_STATE, DIAMETER_DATA }, > { DIAMETER_ATT_LOGIN_LAT_SERVICE, DIAMETER_STRING }, > { DIAMETER_ATT_LOGIN_LAT_NODE, DIAMETER_STRING }, > { DIAMETER_ATT_LOGIN_LAT_GROUP, DIAMETER_STRING }, > { DIAMETER_ATT_FRAMED_APPLETALK_LINK, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_FRAMED_APPLETALK_NETWORK, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_FRAMED_APPLETALK_ZONE, DIAMETER_STRING }, > { DIAMETER_ATT_CHAP_CHALLENGE, DIAMETER_STRING }, > { DIAMETER_ATT_NAS_PORT_TYPE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_PORT_LIMIT, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_LOGIN_LAT_PORT, DIAMETER_STRING }, > { DIAMETER_ATT_TUNNEL_TYPE, DIAMETER_STRING }, > { DIAMETER_ATT_TUNNEL_MEDIUM_TYPE, DIAMETER_STRING }, > { DIAMETER_ATT_ACCT_TUNNEL_CLIENT_ENDPOINT, DIAMETER_STRING }, > { DIAMETER_ATT_TUNNEL_SERVER_ENDPOINT, DIAMETER_STRING }, > { DIAMETER_ATT_ACCT_TUNNEL_CONNECTION_ID, DIAMETER_STRING }, > { DIAMETER_ATT_TUNNEL_PASSWORD, DIAMETER_STRING }, > { DIAMETER_ATT_ARAP_PASSWORD, DIAMETER_STRING }, > { DIAMETER_ATT_ARAP_FEATURES, DIAMETER_STRING }, > { DIAMETER_ATT_ARAP_ZONE_ACCESS, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_ARAP_SECURITY, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_ARAP_SECURITY_DATA, DIAMETER_STRING }, > { DIAMETER_ATT_PASSWORD_RETRY, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_PROMPT, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_CONNECT_INFO, DIAMETER_STRING }, > { DIAMETER_ATT_CONFIGURATION_TOKEN, DIAMETER_STRING }, > { DIAMETER_ATT_EAP_MESSAGE, DIAMETER_STRING }, > { DIAMETER_ATT_SIGNATURE, DIAMETER_STRING }, > { DIAMETER_ATT_ACCT_STATUS_TYPE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_ACCT_DELAY_TIME, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_ACCT_INPUT_OCTETS, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_ACCT_OUTPUT_OCTETS, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_ACCT_SESSION_ID, DIAMETER_STRING }, > { DIAMETER_ATT_ACCT_AUTHENTIC, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_ACCT_SESSION_TIME, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_ACCT_INPUT_PACKETS, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_ACCT_OUTPUT_PACKETS, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_ACCT_TERMINATE_CAUSE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_ACCT_MULTI_SESSION_ID, DIAMETER_STRING }, > { DIAMETER_ATT_ACCT_LINK_COUNT, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_MERIT_ENCAPSULATED, DIAMETER_DATA }, > { DIAMETER_ATT_MERIT_REPLY_IF_ACK_MESSAGE, DIAMETER_STRING }, > { DIAMETER_ATT_MERIT_LAS_START_TIME, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_MERIT_LAS_CODE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_MERIT_LAS_DURATION, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_MERIT_LOCAL_DURATION, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_MERIT_HUNTGROUP_SERVICE, DIAMETER_STRING }, > { DIAMETER_ATT_MERIT_PORT_ENTRY, DIAMETER_DATA }, > { DIAMETER_ATT_MERIT_PROXY_ACTION, DIAMETER_STRING }, > { DIAMETER_ATT_MERIT_TOKEN, DIAMETER_STRING }, > { DIAMETER_ATT_MERIT_OWNERSHIP, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_MERIT_SUBGROUP, DIAMETER_STRING }, > { DIAMETER_ATT_MERIT_HUNTGROUP_NAME, DIAMETER_STRING }, > { DIAMETER_ATT_MERIT_USER_ID, DIAMETER_STRING }, > { DIAMETER_ATT_MERIT_USER_REALM, DIAMETER_STRING }, > { DIAMETER_ATT_COMMAND_CODE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_EXTENSION_ID, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_INTEGRITY_CHECK_VALUE, DIAMETER_COMPLEX }, > { DIAMETER_ATT_ENCRYPTED_PAYLOAD, DIAMETER_DATA }, > { DIAMETER_ATT_NONCE, DIAMETER_DATA }, > { DIAMETER_ATT_TIMESTAMP, DIAMETER_TIME }, > { DIAMETER_ATT_SESSION_ID, DIAMETER_DATA }, > { DIAMETER_ATT_VENDOR_NAME, DIAMETER_STRING }, > { DIAMETER_ATT_FIRMWARE_REVISION, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_RESULT_CODE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_DESTINATION_NAI, DIAMETER_STRING }, > { DIAMETER_ATT_REBOOT_TYPE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_REBOOT_TIME, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_FAILED_AVP, DIAMETER_DATA }, > { DIAMETER_ATT_RECEIVE_WINDOW, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_REDIRECT_HOST, DIAMETER_ADDRESS }, > { DIAMETER_ATT_IP_PORT, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_ACCOUNTING_RECORD_TYPE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_ADIF_RECORD, DIAMETER_DATA }, > { DIAMETER_ATT_ACCOUNTING_INTERIM_INTERVAL, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_ACCOUNTING_DELIVERY_MAX_BATCH, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_ACCOUNTING_DELIVERY_MAX_DELAY, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_ACCOUNTING_RECORD_NUMBER, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_MIP_REGISTRATION_REQUEST, DIAMETER_DATA }, > { DIAMETER_ATT_MIP_REGISTRATION_REPLY, DIAMETER_DATA }, > { DIAMETER_ATT_MN_FA_CHALLENGE_LENGTH, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_MN_FA_RESPONSE, DIAMETER_DATA }, > { DIAMETER_ATT_MOBILE_NODE_ADDRESS, DIAMETER_ADDRESS }, > { DIAMETER_ATT_HOME_AGENT_ADDRESS, DIAMETER_ADDRESS }, > { DIAMETER_ATT_PREVIOUS_FA_NAI, DIAMETER_STRING }, > { DIAMETER_ATT_MN_AAA_SPI, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_FOREIGN_HA_AVAIL, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_MN_TO_FA_KEY, DIAMETER_DATA }, > { DIAMETER_ATT_MN_TO_HA_KEY, DIAMETER_DATA }, > { DIAMETER_ATT_FA_TO_MN_KEY, DIAMETER_DATA }, > { DIAMETER_ATT_FA_TO_HA_KEY, DIAMETER_DATA }, > { DIAMETER_ATT_HA_TO_MN_KEY, DIAMETER_DATA }, > { DIAMETER_ATT_HA_TO_FA_KEY, DIAMETER_DATA }, > { DIAMETER_ATT_FA_MN_PREFERRED_SPI, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_FA_HA_PREFERRED_SPI, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_FILTER_RULE, DIAMETER_STRING }, > { DIAMETER_ATT_REQUEST_TYPE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_EAP_PAYLOAD, DIAMETER_DATA }, > { DIAMETER_ATT_CMS_DATA, DIAMETER_DATA }, > { DIAMETER_ATT_RES_MGMT_INDEX, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_RES_MGMT_TOKEN, DIAMETER_DATA }, > { DIAMETER_ATT_SOURCE_HOST, DIAMETER_ADDRESS }, > { DIAMETER_ATT_DESTINATION_HOST, DIAMETER_ADDRESS }, > { DIAMETER_ATT_SOURCE_PORT, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_DESTINATION_PORT, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_PROTOCOL, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_RSVP_SERVICE_TYPE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_TOKEN_BUCKET_RATE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_TOKEN_BUCKET_SIZE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_PEAK_DATA_RATE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_MINIMUM_POLICED_UNIT, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_MAXIMUM_PACKET_SIZE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_QOS_RATE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_SLACK_TERM, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_TOS_DS_VALUE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_INTERFACE_ADDRESS, DIAMETER_ADDRESS }, > { DIAMETER_ATT_QOS_SERVICE_TYPE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_VOIP_CALLER, DIAMETER_STRING }, > { DIAMETER_ATT_VOIP_CALLEE, DIAMETER_STRING }, > { DIAMETER_ATT_VOIP_CHALLENGE, DIAMETER_DATA }, > { DIAMETER_ATT_VOIP_RESPONSE, DIAMETER_DATA }, > { DIAMETER_ATT_VOIP_SESSION_LENGTH, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_COMMENT, DIAMETER_STRING }, > { DIAMETER_ATT_XVALUE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_XSTRING, DIAMETER_STRING }, > { DIAMETER_ATT_AUTHENTICATION_TYPE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_PROHIBIT, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_USER_CATEGORY, DIAMETER_STRING }, > { DIAMETER_ATT_GROUP_NAME, DIAMETER_STRING }, > { DIAMETER_ATT_ENCRYPTED_PASSWORD, DIAMETER_STRING }, > { DIAMETER_ATT_EXPIRATION, DIAMETER_TIME }, > { DIAMETER_ATT_PASSWORD, DIAMETER_STRING }, > { DIAMETER_ATT_SIMULTANEOUS_USE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_SESSION_LIMIT, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_SERVER_NAME, DIAMETER_STRING }, > { DIAMETER_ATT_FRAMED_IP_ADDRESS_POOL_NAME, DIAMETER_STRING }, > { DIAMETER_ATT_SERVICE_CLASS, DIAMETER_STRING }, > { DIAMETER_ATT_DENY_MESSAGE, DIAMETER_STRING }, > { DIAMETER_ATT_SOURCE_SUBNET, DIAMETER_ADDRESS }, > { DIAMETER_ATT_DESTINATION_SUBNET, DIAMETER_ADDRESS }, > { DIAMETER_ATT_MAX_QOS_RATE, DIAMETER_INTEGER32 }, > { DIAMETER_ATT_ACCOUNTING_ADIF_RECORD, DIAMETER_DATA }, > {0, 0} > }; > > > > > /* Values Structures */ > > static value_string diameter_qos_service_type_vals[]={ > {3, "Labels"}, > {1, "RSVP"}, > {2, "TOS"}, > {0, (char *)NULL} > }; > > static value_string diameter_service_type_vals[]={ > {5, "Outbound"}, > {7, "NAS-Prompt"}, > {3, "Callback-Login"}, > {6, "Administrative"}, > {1, "Login"}, > {4, "Callback-Framed"}, > {9, "Callback-NAS-Prompt"}, > {8, "Authenticate-Only"}, > {2, "Framed"}, > {0, (char *)NULL} > }; > > static value_string diameter_prohibit_vals[]={ > {0, "Dumb"}, > {2, "SLIP"}, > {1, "PPP"}, > {3, "Auth-Only"}, > {255, "All"}, > {0, (char *)NULL} > }; > > static value_string diameter_prompt_vals[]={ > {0, "No-Echo"}, > {1, "Echo"}, > {0, (char *)NULL} > }; > > static value_string diameter_source_port_vals[]={ > {23, "ftp"}, > {0, "*"}, > {21, "telnet"}, > {0, (char *)NULL} > }; > > static value_string diameter_nas_port_type_vals[]={ > {6, "PIAFS"}, > {9, "X75"}, > {7, "HDLC-Clear-Channel"}, > {5, "Virtual"}, > {2, "ISDN-Sync"}, > {1, "Sync"}, > {0, "Async"}, > {4, "ISDN-Async-v110"}, > {3, "ISDN-Async-v120"}, > {8, "X25"}, > {0, (char *)NULL} > }; > > static value_string diameter_interface_address_vals[]={ > {0, "Any-Interface"}, > {0, (char *)NULL} > }; > > static value_string diameter_framed_routing_vals[]={ > {0, "None"}, > {1, "Broadcast"}, > {3, "Broadcast-Listen"}, > {2, "Listen"}, > {0, (char *)NULL} > }; > > static value_string diameter_command_code_vals[]={ > {257, "Device-Reboot-Ind"}, > {258, "Device-Watchdog-Ind"}, > {259, "Message-Reject-Ind"}, > {260, "AA-Mobile-Node-Request"}, > {261, "AA-Mobile-Node-Answer"}, > {262, "Home-Agent-MIP-Request"}, > {263, "Home-Agent-MIP-Answer"}, > {264, "Mobile-Node-Terminate-Ind"}, > {265, "AA-Request"}, > {266, "AA-Answer"}, > {267, "AA-Challenge-Ind"}, > {268, "DIAMETER-EAP-Request"}, > {269, "DIAMETER-EAP-Answer"}, > {270, "DIAMETER-EAP-Ind"}, > {271, "Accounting-Request"}, > {272, "Accounting-Answer"}, > {273, "Accounting-Poll"}, > {483, "Accounting-Start-Answer"}, > {511, "Ping-Req"}, > {484, "Accounting-Interim-Req"}, > {480, "Voip-Stop-Req"}, > {512, "Ping-Answer"}, > {513, "EAP-Req"}, > {485, "Accounting-Interim-Answer"}, > {481, "Voip-Stop-Answer"}, > {478, "Voip-Start-Req"}, > {486, "Accounting-Stop-Req"}, > {514, "EAP-Answer"}, > {515, "Domain-Discovery-Request"}, > {479, "Voip-Start-Answer"}, > {516, "Domain-Discovery-Answer"}, > {487, "Accounting-Stop-Answer"}, > {482, "Accounting-Start-Req"}, > {0, (char *)NULL} > }; > > static value_string diameter_framed_ip_address_vals[]={ > {-1, "Assigned"}, > {0, (char *)NULL} > }; > > static value_string diameter_arap_zone_access_vals[]={ > {4, "Exclusive-Filter"}, > {2, "Inclusive-Filter"}, > {1, "Default-Zone"}, > {0, (char *)NULL} > }; > > static value_string diameter_acct_authentic_vals[]={ > {1, "RADIUS"}, > {0, "None"}, > {2, "Local"}, > {0, (char *)NULL} > }; > > static value_string diameter_framed_protocol_vals[]={ > {1, "PPP"}, > {260, "COMB"}, > {5, "Xylogics"}, > {257, "EURAW"}, > {3, "ARA"}, > {261, "FR"}, > {2, "SLIP"}, > {258, "EUUI"}, > {4, "Gandalf"}, > {256, "MPP"}, > {255, "Ascend-ARA"}, > {259, "X25"}, > {0, (char *)NULL} > }; > > static value_string diameter_framed_compression_vals[]={ > {0, "None"}, > {1, "Van-Jacobson-TCP-IP"}, > {2, "IPX-Header-Compression"}, > {0, (char *)NULL} > }; > > static value_string diameter_authentication_type_vals[]={ > {10, "File"}, > {22, "LDAP"}, > {21, "Slow"}, > {20, "Blackhole"}, > {2, "AFS-Krb"}, > {6, "KCHAP"}, > {4, "RADIUS"}, > {13, "ACE"}, > {9, "Local"}, > {7, "TACACS"}, > {0, "None"}, > {19, "Deny"}, > {23, "Unassigned"}, > {8, "Realm"}, > {1, "Passwd"}, > {5, "MNET"}, > {3, "MIT-Krb"}, > {17, "Oracle"}, > {1, "Unix-PW"}, > {16, "ODBC"}, > {11, "TACPLUS"}, > {15, "SKEY"}, > {12, "ARA-DES"}, > {14, "DEFENDER"}, > {18, "Allow"}, > {0, (char *)NULL} > }; > > static value_string diameter_acct_terminate_cause_vals[]={ > {1, "User-Request"}, > {2, "Lost-Carrier"}, > {3, "Lost-Service"}, > {4, "Idle-Timeout"}, > {5, "Session-Timeout"}, > {6, "Admin-Reset"}, > {7, "Admin-Reboot"}, > {8, "Port-Error"}, > {9, "NAS-Error"}, > {10, "NAS-Request"}, > {11, "NAS-Reboot"}, > {12, "Port-Unneeded"}, > {13, "Port-Preempted"}, > {14, "Port-Suspended"}, > {15, "Service-Unavailable"}, > {16, "Callback"}, > {17, "User-Error"}, > {18, "Host-Request"}, > {0, (char *)NULL} > }; > > static value_string diameter_protocol_vals[]={ > {65535, "Any"}, > {17, "UDP"}, > {1, "ICMP"}, > {0, "IP"}, > {6, "TCP"}, > {0, (char *)NULL} > }; > > static value_string diameter_destination_port_vals[]={ > {10000, "vic-rsvp"}, > {23, "ftp"}, > {0, "*"}, > {21, "telnet"}, > {0, (char *)NULL} > }; > > static value_string diameter_termination_action_vals[]={ > {0, "Default"}, > {1, "RADIUS-Request"}, > {0, (char *)NULL} > }; > > static value_string diameter_extension_id_vals[]={ > {1, "NASREQ"}, > {2, "Strong-Security"}, > {4, "Mobile-IP"}, > {5, "Accounting"}, > {7, "VOIP"}, > {8, "EAP"}, > {555, "Test"}, > {556, "AccountingV3"}, > {0, (char *)NULL} > }; > > static value_string diameter_merit_las_code_vals[]={ > {0, "LAS-Normal"}, > {1, "LAS-Reject"}, > {2, "LAS-Cancel"}, > {3, "LAS-Noconfirm"}, > {4, "LAS-Overtime"}, > {5, "LAS-Unknown"}, > {6, "LAS-Notoken"}, > {7, "LAS-Notlocal"}, > {8, "LAS-Suspend"}, > {9, "LAS-Failed"}, > {10, "LAS-Authorized"}, > {11, "LAS-NASreboot"}, > {12, "LAS-Remote"}, > {13, "LAS-Duplicate"}, > {14, "LAS-Collision"}, > {15, "LAS-Stop"}, > {0, (char *)NULL} > }; > > static value_string diameter_login_service_vals[]={ > {0, "Telnet"}, > {1, "Rlogin"}, > {2, "TCP-Clear"}, > {3, "PortMaster"}, > {4, "LAT"}, > {5, "X25-PAD"}, > {6, "X25-T3POS"}, > {0, (char *)NULL} > }; > > static value_string diameter_rsvp_service_type_vals[]={ > {1, "RSVP-Controlled-Load"}, > {2, "RSVP-Guaranteed"}, > {0, (char *)NULL} > }; > > static value_string diameter_reboot_type_vals[]={ > {1, "Reboot-Imminent"}, > {2, "Reboot-Complete"}, > {0, (char *)NULL} > }; > > static value_string diameter_acct_status_type_vals[]={ > {1, "Start"}, > {2, "Stop"}, > {3, "Alive"}, > {4, "Modem-Start"}, > {5, "Modem-Stop"}, > {6, "Cancel"}, > {7, "Accounting-On"}, > {8, "Accounting-Off"}, > {0, (char *)NULL} > }; > > > #endif /* _PACKET_DIAMETER_H */ > > -------------------------------end packet-diameter.h-------------------
- References:
- [ethereal-dev] Diameter (using new prefs.c)
- From: David Frascone
- Re: [ethereal-dev] Diameter (using new prefs.c)
- From: Gilbert Ramirez
- Re: [ethereal-dev] Diameter (using new prefs.c)
- From: David Frascone
- [ethereal-dev] Diameter (using new prefs.c)
- Prev by Date: [ethereal-dev] autogen.sh
- Next by Date: Re: [ethereal-dev] "autogen" problems in CVS sources
- Previous by thread: Re: [ethereal-dev] Diameter (using new prefs.c)
- Next by thread: Re: [ethereal-dev] Diameter (using new prefs.c)
- Index(es):