Add editor modelines; Adjust whitespace; Remove boilerplate comments

Change-Id: I1f5f83ed441f6009125cf2cbe5023af04986898a
Reviewed-on: https://code.wireshark.org/review/4392
Reviewed-by: Bill Meier <wmeier@newsguy.com>
This commit is contained in:
Bill Meier 2014-09-30 16:59:17 -04:00
parent 6896c2648c
commit 9b181b97c6
75 changed files with 3164 additions and 2296 deletions

View File

@ -795,3 +795,15 @@ proto_reg_handoff_njack(void)
/* heur_dissector_add("tcp", dissect_njack_heur, proto_njack); */
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -31,8 +31,9 @@
#include <epan/wmem/wmem.h>
#define UDP_PORT_ACTRACE 2428
#define NOT_ACTRACE 0
#define ACTRACE_CAS 1
#define NOT_ACTRACE 0
#define ACTRACE_CAS 1
#define ACTRACE_ISDN 2
@ -74,15 +75,15 @@ static dissector_handle_t lapd_handle;
#define ACTRACE_CAS_SOURCE_TABLE 2
static const value_string actrace_cas_source_vals[] = {
{ACTRACE_CAS_SOURCE_DSP, "DSP"},
{ACTRACE_CAS_SOURCE_USER, "User"},
{ACTRACE_CAS_SOURCE_DSP, "DSP"},
{ACTRACE_CAS_SOURCE_USER, "User"},
{ACTRACE_CAS_SOURCE_TABLE, "Table"},
{0, NULL }
};
static const value_string actrace_cas_source_vals_short[] = {
{ACTRACE_CAS_SOURCE_DSP, "D"},
{ACTRACE_CAS_SOURCE_USER, "U"},
{ACTRACE_CAS_SOURCE_DSP, "D"},
{ACTRACE_CAS_SOURCE_USER, "U"},
{ACTRACE_CAS_SOURCE_TABLE, "T"},
{0, NULL }
};
@ -124,89 +125,89 @@ static const value_string actrace_cas_mf_vals[] = {
static value_string_ext actrace_cas_mf_vals_ext = VALUE_STRING_EXT_INIT(actrace_cas_mf_vals);
static const value_string actrace_cas_event_vals[] = {
{0, "FUNCTION0"},
{1, "FUNCTION1"},
{2, "FUNCTION2"},
{3, "FUNCTION3"},
{4, "EV_PLACE_CALL"},
{5, "EV_TIMER_EXPIRED1"},
{6, "EV_TIMER_EXPIRED2"},
{7, "EV_TIMER_EXPIRED3"},
{8, "EV_TIMER_EXPIRED4"},
{9, "EV_TIMER_EXPIRED5"},
{10, "EV_TIMER_EXPIRED6"},
{11, "EV_TIMER_EXPIRED7"},
{12, "EV_TIMER_EXPIRED8"},
{13, "EV_ANSWER"},
{14, "EV_DIAL_TONE_DETECTED"},
{15, "EV_DIAL_ENDED"},
{16, "EV_DISCONNECT"},
{ACTRACE_CAS_EV_11, "EV_CAS_1_1"},
{ACTRACE_CAS_EV_10, "EV_CAS_1_0"},
{ACTRACE_CAS_EV_01, "EV_CAS_0_1"},
{ACTRACE_CAS_EV_00, "EV_CAS_0_0"},
{21, "EV_RB_TONE_STARTED"},
{22, "EV_RB_TONE_STOPPED"},
{23, "EV_BUSY_TONE"},
{24, "EV_FAST_BUSY_TONE"},
{25, "EV_HELLO_DETECTED"},
{26, "EV_DIAL_TONE_STOPPED"},
{27, "EV_DISCONNECT_INCOMING"},
{28, "EV_RELEASE_CALL"},
{29, "EV_DIALED_NUM_DETECTED"},
{30, "EV_COUNTER1_EXPIRED"},
{31, "EV_COUNTER2_EXPIRED"},
{32, "EV_MFRn_1"},
{33, "EV_MFRn_2"},
{34, "EV_MFRn_3"},
{35, "EV_MFRn_4"},
{36, "EV_MFRn_5"},
{37, "EV_MFRn_6"},
{38, "EV_MFRn_7"},
{39, "EV_MFRn_8"},
{40, "EV_MFRn_9"},
{41, "EV_MFRn_10"},
{42, "EV_MFRn_11"},
{43, "EV_MFRn_12"},
{44, "EV_MFRn_13"},
{45, "EV_MFRn_14"},
{46, "EV_MFRn_15"},
{47, "EV_MFRn_1_STOPPED"},
{48, "EV_MFRn_2_STOPPED"},
{49, "EV_MFRn_3_STOPPED"},
{50, "EV_MFRn_4_STOPPED"},
{51, "EV_MFRn_5_STOPPED"},
{52, "EV_MFRn_6_STOPPED"},
{53, "EV_MFRn_7_STOPPED"},
{54, "EV_MFRn_8_STOPPED"},
{55, "EV_MFRn_9_STOPPED"},
{56, "EV_MFRn_10_STOPPED"},
{57, "EV_MFRn_11_STOPPED"},
{58, "EV_MFRn_12_STOPPED"},
{59, "EV_MFRn_13_STOPPED"},
{60, "EV_MFRn_14_STOPPED"},
{61, "EV_MFRn_15_STOPPED"},
{62, "EV_ANI_NUM_DETECTED"},
{ACTRACE_CAS_EV_FIRST_DIGIT, "EV_FIRST_DIGIT"},
{64, "EV_END_OF_MF_DIGIT"},
{65, "EV_ACCEPT"},
{66, "EV_REJECT_BUSY"},
{67, "EV_REJECT_CONGESTION"},
{68, "EV_REJECT_UNALLOCATED"},
{69, "EV_REJECT_RESERVE1"},
{70, "EV_REJECT_RESERVE2"},
{71, "EV_NO_ANI"},
{100, "EV_INIT_CHANNEL"},
{101, "EV_BUSY_TONE_STOPPED"},
{102, "EV_FAST_BUSY_TONE_STOPPED"},
{103, "EV_TO_USER"},
{104, "SEND_FIRST_DIGIT"},
{110, "EV_CLOSE_CHANNEL"},
{111, "EV_OPEN_CHANNEL"},
{112, "EV_FAIL_DIAL"},
{113, "EV_FAIL_SEND_CAS"},
{114, "EV_ALARM"},
{ACTRACE_CAS_EV_DTMF, "EV_DTMF"},
{ 0, "FUNCTION0"},
{ 1, "FUNCTION1"},
{ 2, "FUNCTION2"},
{ 3, "FUNCTION3"},
{ 4, "EV_PLACE_CALL"},
{ 5, "EV_TIMER_EXPIRED1"},
{ 6, "EV_TIMER_EXPIRED2"},
{ 7, "EV_TIMER_EXPIRED3"},
{ 8, "EV_TIMER_EXPIRED4"},
{ 9, "EV_TIMER_EXPIRED5"},
{ 10, "EV_TIMER_EXPIRED6"},
{ 11, "EV_TIMER_EXPIRED7"},
{ 12, "EV_TIMER_EXPIRED8"},
{ 13, "EV_ANSWER"},
{ 14, "EV_DIAL_TONE_DETECTED"},
{ 15, "EV_DIAL_ENDED"},
{ 16, "EV_DISCONNECT"},
{ ACTRACE_CAS_EV_11, "EV_CAS_1_1"},
{ ACTRACE_CAS_EV_10, "EV_CAS_1_0"},
{ ACTRACE_CAS_EV_01, "EV_CAS_0_1"},
{ ACTRACE_CAS_EV_00, "EV_CAS_0_0"},
{ 21, "EV_RB_TONE_STARTED"},
{ 22, "EV_RB_TONE_STOPPED"},
{ 23, "EV_BUSY_TONE"},
{ 24, "EV_FAST_BUSY_TONE"},
{ 25, "EV_HELLO_DETECTED"},
{ 26, "EV_DIAL_TONE_STOPPED"},
{ 27, "EV_DISCONNECT_INCOMING"},
{ 28, "EV_RELEASE_CALL"},
{ 29, "EV_DIALED_NUM_DETECTED"},
{ 30, "EV_COUNTER1_EXPIRED"},
{ 31, "EV_COUNTER2_EXPIRED"},
{ 32, "EV_MFRn_1"},
{ 33, "EV_MFRn_2"},
{ 34, "EV_MFRn_3"},
{ 35, "EV_MFRn_4"},
{ 36, "EV_MFRn_5"},
{ 37, "EV_MFRn_6"},
{ 38, "EV_MFRn_7"},
{ 39, "EV_MFRn_8"},
{ 40, "EV_MFRn_9"},
{ 41, "EV_MFRn_10"},
{ 42, "EV_MFRn_11"},
{ 43, "EV_MFRn_12"},
{ 44, "EV_MFRn_13"},
{ 45, "EV_MFRn_14"},
{ 46, "EV_MFRn_15"},
{ 47, "EV_MFRn_1_STOPPED"},
{ 48, "EV_MFRn_2_STOPPED"},
{ 49, "EV_MFRn_3_STOPPED"},
{ 50, "EV_MFRn_4_STOPPED"},
{ 51, "EV_MFRn_5_STOPPED"},
{ 52, "EV_MFRn_6_STOPPED"},
{ 53, "EV_MFRn_7_STOPPED"},
{ 54, "EV_MFRn_8_STOPPED"},
{ 55, "EV_MFRn_9_STOPPED"},
{ 56, "EV_MFRn_10_STOPPED"},
{ 57, "EV_MFRn_11_STOPPED"},
{ 58, "EV_MFRn_12_STOPPED"},
{ 59, "EV_MFRn_13_STOPPED"},
{ 60, "EV_MFRn_14_STOPPED"},
{ 61, "EV_MFRn_15_STOPPED"},
{ 62, "EV_ANI_NUM_DETECTED"},
{ ACTRACE_CAS_EV_FIRST_DIGIT, "EV_FIRST_DIGIT"},
{ 64, "EV_END_OF_MF_DIGIT"},
{ 65, "EV_ACCEPT"},
{ 66, "EV_REJECT_BUSY"},
{ 67, "EV_REJECT_CONGESTION"},
{ 68, "EV_REJECT_UNALLOCATED"},
{ 69, "EV_REJECT_RESERVE1"},
{ 70, "EV_REJECT_RESERVE2"},
{ 71, "EV_NO_ANI"},
{ 100, "EV_INIT_CHANNEL"},
{ 101, "EV_BUSY_TONE_STOPPED"},
{ 102, "EV_FAST_BUSY_TONE_STOPPED"},
{ 103, "EV_TO_USER"},
{ 104, "SEND_FIRST_DIGIT"},
{ 110, "EV_CLOSE_CHANNEL"},
{ 111, "EV_OPEN_CHANNEL"},
{ 112, "EV_FAIL_DIAL"},
{ 113, "EV_FAIL_SEND_CAS"},
{ 114, "EV_ALARM"},
{ ACTRACE_CAS_EV_DTMF, "EV_DTMF"},
{1010, "EV_TIMER_EXPIRED10"},
{1020, "EV_DEBOUNCE_TIMER_EXPIRED"},
{1030, "EV_INTER_DIGIT_TIMER_EXPIRED"},
@ -214,50 +215,50 @@ static const value_string actrace_cas_event_vals[] = {
};
static value_string_ext actrace_cas_event_vals_ext = VALUE_STRING_EXT_INIT(actrace_cas_event_vals);
#define SEND_CAS 2
#define SEND_CAS 2
#define SEND_EVENT 3
#define CHANGE_COLLECT_TYPE 13
#define SEND_MF 8
#define SEND_DEST_NUM 4
static const value_string actrace_cas_function_vals[] = {
{0, "NILL"},
{1, "SET_TIMER"},
{SEND_CAS, "SEND_CAS"},
{SEND_EVENT, "SEND_EVENT"},
{SEND_DEST_NUM, "SEND_DEST_NUM"},
{5, "DEL_TIMER"},
{6, "START_COLLECT"},
{7, "STOP_COLLECT"},
{SEND_MF, "SEND_MF"},
{9, "STOP_DIAL_MF"},
{10, "SET_COUNTER"},
{11, "DEC_COUNTER"},
{12, "SEND_PROG_TON"},
{ 0, "NILL"},
{ 1, "SET_TIMER"},
{ SEND_CAS, "SEND_CAS"},
{ SEND_EVENT, "SEND_EVENT"},
{ SEND_DEST_NUM, "SEND_DEST_NUM"},
{ 5, "DEL_TIMER"},
{ 6, "START_COLLECT"},
{ 7, "STOP_COLLECT"},
{ SEND_MF, "SEND_MF"},
{ 9, "STOP_DIAL_MF"},
{10, "SET_COUNTER"},
{11, "DEC_COUNTER"},
{12, "SEND_PROG_TON"},
{CHANGE_COLLECT_TYPE, "CHANGE_COLLECT_TYPE"},
{14, "GENERATE_CAS_EV"},
{14, "GENERATE_CAS_EV"},
{0, NULL}
};
static value_string_ext actrace_cas_function_vals_ext = VALUE_STRING_EXT_INIT(actrace_cas_function_vals);
static const value_string actrace_cas_pstn_event_vals[] = {
{64, "acEV_PSTN_INTERNAL_ERROR"},
{65, "acEV_PSTN_CALL_CONNECTED"},
{66, "acEV_PSTN_INCOMING_CALL_DETECTED"},
{67, "acEV_PSTN_CALL_DISCONNECTED"},
{68, "acEV_PSTN_CALL_RELEASED"},
{69, "acEV_PSTN_REMOTE_ALERTING"},
{70, "acEV_PSTN_STARTED"},
{71, "acEV_PSTN_WARNING"},
{72, "acEV_ISDN_PROGRESS_INDICATION"},
{73, "acEV_PSTN_PROCEEDING_INDICATION"},
{74, "acEV_PSTN_ALARM"},
{75, "acEV_RESERVED"},
{76, "acEV_PSTN_LINE_INFO"},
{77, "acEV_PSTN_LOOP_CONFIRM"},
{78, "acEV_PSTN_RESTART_CONFIRM"},
{84, "acEV_ISDN_SETUP_ACK_IN"},
{85, "acEV_PSTN_CALL_INFORMATION"},
{ 64, "acEV_PSTN_INTERNAL_ERROR"},
{ 65, "acEV_PSTN_CALL_CONNECTED"},
{ 66, "acEV_PSTN_INCOMING_CALL_DETECTED"},
{ 67, "acEV_PSTN_CALL_DISCONNECTED"},
{ 68, "acEV_PSTN_CALL_RELEASED"},
{ 69, "acEV_PSTN_REMOTE_ALERTING"},
{ 70, "acEV_PSTN_STARTED"},
{ 71, "acEV_PSTN_WARNING"},
{ 72, "acEV_ISDN_PROGRESS_INDICATION"},
{ 73, "acEV_PSTN_PROCEEDING_INDICATION"},
{ 74, "acEV_PSTN_ALARM"},
{ 75, "acEV_RESERVED"},
{ 76, "acEV_PSTN_LINE_INFO"},
{ 77, "acEV_PSTN_LOOP_CONFIRM"},
{ 78, "acEV_PSTN_RESTART_CONFIRM"},
{ 84, "acEV_ISDN_SETUP_ACK_IN"},
{ 85, "acEV_PSTN_CALL_INFORMATION"},
{128, "acEV_CAS_SEIZURE_DETECTED"},
{129, "acEV_CAS_CHANNEL_BLOCKED"},
{130, "acEV_CAS_PROTOCOL_STARTED"},
@ -283,75 +284,75 @@ static const value_string actrace_cas_collect_type_vals[] = {
#define SEND_TYPE_TRANSFER_CAPABILITY 6
static const value_string actrace_cas_send_type_vals[] = {
{SEND_TYPE_ADDRESS, "ADDRESS"},
{SEND_TYPE_SPECIFIC, "SPECIFIC"},
{SEND_TYPE_ADDRESS, "ADDRESS"},
{SEND_TYPE_SPECIFIC, "SPECIFIC"},
{SEND_TYPE_INTER_EXCHANGE_SWITCH, "INTER_EXCHANGE_SWITCH"},
{SEND_TYPE_ANI, "ANI"},
{SEND_TYPE_SOURCE_CATEGORY, "SOURCE_CATEGORY"},
{SEND_TYPE_TRANSFER_CAPABILITY, "TRANSFER_CAPABILITY"},
{SEND_TYPE_ANI, "ANI"},
{SEND_TYPE_SOURCE_CATEGORY, "SOURCE_CATEGORY"},
{SEND_TYPE_TRANSFER_CAPABILITY, "TRANSFER_CAPABILITY"},
{0, NULL}
};
static const value_string actrace_cas_cause_vals[] = {
{1, "UNASSIGNED_NUMBER"},
{2, "NO_ROUTE_TO_TRANSIT_NET"},
{3, "NO_ROUTE_TO_DESTINATION"},
{6, "CHANNEL_UNACCEPTABLE"},
{7, "CALL_AWARDED_AND"},
{8, "PREEMPTION"},
{16, "NORMAL_CALL_CLEAR"},
{17, "USER_BUSY"},
{18, "NO_USER_RESPONDING"},
{19, "NO_ANSWER_FROM_USER_ALERTED"},
{20, "ACCEPT_DONE"},
{21, "CALL_REJECTED"},
{22, "NUMBER_CHANGED"},
{26, "NON_SELECTED_USER_CLEARING"},
{27, "DEST_OUT_OF_ORDER"},
{28, "INVALID_NUMBER_FORMAT"},
{29, "FACILITY_REJECT"},
{30, "RESPONSE_TO_STATUS_ENQUIRY"},
{31, "NORMAL_UNSPECIFIED"},
{32, "CIRCUIT_CONGESTION"},
{33, "USER_CONGESTION"},
{34, "NO_CIRCUIT_AVAILABLE"},
{38, "NETWORK_OUT_OF_ORDER"},
{39, "PERM_FR_MODE_CONN_OUT_OF_S"},
{40, "PERM_FR_MODE_CONN_OPERATIONAL"},
{41, "NETWORK_TEMPORARY_FAILURE"},
{42, "NETWORK_CONGESTION"},
{43, "ACCESS_INFORMATION_DISCARDED"},
{44, "REQUESTED_CIRCUIT_NOT_AVAILABLE"},
{46, "PRECEDENCE_CALL_BLOCKED"},
{47, "RESOURCE_UNAVAILABLE_UNSPECIFIED"},
{49, "QUALITY_OF_SERVICE_UNAVAILABLE"},
{50, "REQUESTED_FAC_NOT_SUBSCRIBED"},
{53, "CUG_OUT_CALLS_BARRED"},
{55, "CUG_INC_CALLS_BARRED"},
{57, "BC_NOT_AUTHORIZED"},
{58, "BC_NOT_PRESENTLY_AVAILABLE"},
{62, "ACCES_INFO_SUBS_CLASS_INCONS"},
{63, "SERVICE_NOT_AVAILABLE"},
{65, "BC_NOT_IMPLEMENTED"},
{66, "CHANNEL_TYPE_NOT_IMPLEMENTED"},
{69, "REQUESTED_FAC_NOT_IMPLEMENTED"},
{70, "ONLY_RESTRICTED_INFO_BEARER"},
{79, "SERVICE_NOT_IMPLEMENTED_UNSPECIFIED"},
{81, "INVALID_CALL_REF"},
{82, "IDENTIFIED_CHANNEL_NOT_EXIST"},
{83, "SUSPENDED_CALL_BUT_CALL_ID_NOT_EXIST"},
{84, "CALL_ID_IN_USE"},
{85, "NO_CALL_SUSPENDED"},
{86, "CALL_HAVING_CALL_ID_CLEARED"},
{87, "NOT_CUG_MEMBER"},
{88, "INCOMPATIBLE_DESTINATION"},
{90, "CUG_NON_EXISTENT"},
{91, "INVALID_TRANSIT_NETWORK_SELECTION"},
{95, "INVALID_MESSAGE_UNSPECIFIED"},
{96, "MANDATORY_IE_MISSING"},
{97, "MESSAGE_TYPE_NON_EXISTENT"},
{98, "MESSAGE_STATE_INCONSISTENCY"},
{99, "NON_EXISTENT_IE"},
{ 1, "UNASSIGNED_NUMBER"},
{ 2, "NO_ROUTE_TO_TRANSIT_NET"},
{ 3, "NO_ROUTE_TO_DESTINATION"},
{ 6, "CHANNEL_UNACCEPTABLE"},
{ 7, "CALL_AWARDED_AND"},
{ 8, "PREEMPTION"},
{ 16, "NORMAL_CALL_CLEAR"},
{ 17, "USER_BUSY"},
{ 18, "NO_USER_RESPONDING"},
{ 19, "NO_ANSWER_FROM_USER_ALERTED"},
{ 20, "ACCEPT_DONE"},
{ 21, "CALL_REJECTED"},
{ 22, "NUMBER_CHANGED"},
{ 26, "NON_SELECTED_USER_CLEARING"},
{ 27, "DEST_OUT_OF_ORDER"},
{ 28, "INVALID_NUMBER_FORMAT"},
{ 29, "FACILITY_REJECT"},
{ 30, "RESPONSE_TO_STATUS_ENQUIRY"},
{ 31, "NORMAL_UNSPECIFIED"},
{ 32, "CIRCUIT_CONGESTION"},
{ 33, "USER_CONGESTION"},
{ 34, "NO_CIRCUIT_AVAILABLE"},
{ 38, "NETWORK_OUT_OF_ORDER"},
{ 39, "PERM_FR_MODE_CONN_OUT_OF_S"},
{ 40, "PERM_FR_MODE_CONN_OPERATIONAL"},
{ 41, "NETWORK_TEMPORARY_FAILURE"},
{ 42, "NETWORK_CONGESTION"},
{ 43, "ACCESS_INFORMATION_DISCARDED"},
{ 44, "REQUESTED_CIRCUIT_NOT_AVAILABLE"},
{ 46, "PRECEDENCE_CALL_BLOCKED"},
{ 47, "RESOURCE_UNAVAILABLE_UNSPECIFIED"},
{ 49, "QUALITY_OF_SERVICE_UNAVAILABLE"},
{ 50, "REQUESTED_FAC_NOT_SUBSCRIBED"},
{ 53, "CUG_OUT_CALLS_BARRED"},
{ 55, "CUG_INC_CALLS_BARRED"},
{ 57, "BC_NOT_AUTHORIZED"},
{ 58, "BC_NOT_PRESENTLY_AVAILABLE"},
{ 62, "ACCES_INFO_SUBS_CLASS_INCONS"},
{ 63, "SERVICE_NOT_AVAILABLE"},
{ 65, "BC_NOT_IMPLEMENTED"},
{ 66, "CHANNEL_TYPE_NOT_IMPLEMENTED"},
{ 69, "REQUESTED_FAC_NOT_IMPLEMENTED"},
{ 70, "ONLY_RESTRICTED_INFO_BEARER"},
{ 79, "SERVICE_NOT_IMPLEMENTED_UNSPECIFIED"},
{ 81, "INVALID_CALL_REF"},
{ 82, "IDENTIFIED_CHANNEL_NOT_EXIST"},
{ 83, "SUSPENDED_CALL_BUT_CALL_ID_NOT_EXIST"},
{ 84, "CALL_ID_IN_USE"},
{ 85, "NO_CALL_SUSPENDED"},
{ 86, "CALL_HAVING_CALL_ID_CLEARED"},
{ 87, "NOT_CUG_MEMBER"},
{ 88, "INCOMPATIBLE_DESTINATION"},
{ 90, "CUG_NON_EXISTENT"},
{ 91, "INVALID_TRANSIT_NETWORK_SELECTION"},
{ 95, "INVALID_MESSAGE_UNSPECIFIED"},
{ 96, "MANDATORY_IE_MISSING"},
{ 97, "MESSAGE_TYPE_NON_EXISTENT"},
{ 98, "MESSAGE_STATE_INCONSISTENCY"},
{ 99, "NON_EXISTENT_IE"},
{100, "INVALID_IE_CONTENT"},
{101, "MESSAGE_NOT_COMPATIBLE"},
{102, "RECOVERY_ON_TIMER_EXPIRY"},
@ -450,7 +451,7 @@ static int dissect_actrace(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
{
proto_tree *actrace_tree;
proto_item *ti;
int actrace_protocol;
int actrace_protocol;
/* Initialize variables */
actrace_tree = NULL;
@ -496,11 +497,11 @@ static int dissect_actrace(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
static void dissect_actrace_cas(tvbuff_t *tvb, packet_info *pinfo, proto_tree *actrace_tree)
{
/* Declare variables */
gint32 value, function, trunk, bchannel, source, event, curr_state, next_state;
gint32 par0, par1, par2;
gint32 value, function, trunk, bchannel, source, event, curr_state, next_state;
gint32 par0, par1, par2;
const gchar *frame_label = NULL;
int direction = 0;
int offset = 0;
int direction = 0;
int offset = 0;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "AC_CAS");
@ -649,10 +650,10 @@ static void dissect_actrace_isdn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
proto_tree *actrace_tree)
{
/* Declare variables */
gint len;
gint32 value, trunk;
gint len;
gint32 value, trunk;
tvbuff_t *next_tvb;
int offset = 0;
int offset = 0;
len = tvb_get_ntohs(tvb, 44);
@ -706,7 +707,7 @@ static void dissect_actrace_isdn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
*/
static int is_actrace(tvbuff_t *tvb, gint offset)
{
gint tvb_len;
gint tvb_len;
gint32 source, isdn_header;
tvb_len = tvb_reported_length(tvb);
@ -811,9 +812,9 @@ void proto_register_actrace(void)
/* The registration hand-off routine */
void proto_reg_handoff_actrace(void)
{
static gboolean actrace_prefs_initialized = FALSE;
static gboolean actrace_prefs_initialized = FALSE;
static dissector_handle_t actrace_handle;
static guint actrace_udp_port;
static guint actrace_udp_port;
if (!actrace_prefs_initialized)
{
@ -833,3 +834,15 @@ void proto_reg_handoff_actrace(void)
dissector_add_uint("udp.port", global_actrace_udp_port, actrace_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -146,3 +146,15 @@ proto_reg_handoff_ans(void)
dissector_add_uint("ethertype", ETHERTYPE_INTEL_ANS, ans_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -1150,7 +1150,7 @@ static int
aprs_3rd_party( proto_tree *aprs_tree, tvbuff_t *tvb, int offset, int data_len )
{
/* If the type of the hf[] entry pointed to by hfindex is FT_BYTES or FT_STRING */
/* then data_len == -1 is allowed and means "remainder of the tvbuff" */
/* then data_len == -1 is allowed and means "remainder of the tvbuff" */
if ( data_len == -1 )
{
data_len = tvb_reported_length_remaining( tvb, offset );
@ -1170,7 +1170,7 @@ aprs_default_string( proto_tree *aprs_tree, tvbuff_t *tvb, int offset, int data_
{
/* Assumption: hfindex points to an hf[] entry with type FT_STRING; should be validated ? */
/* If the type of the hf[] entry pointed to by hfindex is FT_STRING */
/* then data_len == -1 is allowed and means "remainder of the tvbuff" */
/* then data_len == -1 is allowed and means "remainder of the tvbuff" */
if ( data_len == -1 )
{
data_len = tvb_reported_length_remaining( tvb, offset );
@ -1188,7 +1188,7 @@ aprs_default_bytes( proto_tree *aprs_tree, tvbuff_t *tvb, int offset, int data_l
{
/* Assumption: hfindex points to an hf[] entry with type FT_BYTES; should be validated ? */
/* If the type of the hf[] entry pointed to by hfindex is FT_BYTES */
/* then data_len == -1 is allowed and means "remainder of the tvbuff" */
/* then data_len == -1 is allowed and means "remainder of the tvbuff" */
if ( data_len == -1 )
{
data_len = tvb_reported_length_remaining( tvb, offset );
@ -1969,13 +1969,25 @@ proto_register_aprs( void )
proto_register_subtree_array( ett, array_length( ett ) );
/* Register preferences module */
aprs_module = prefs_register_protocol( proto_aprs, NULL);
aprs_module = prefs_register_protocol( proto_aprs, NULL);
/* Register any preference */
prefs_register_bool_preference(aprs_module, "showaprslax",
prefs_register_bool_preference(aprs_module, "showaprslax",
"Allow APRS violations.",
"Attempt to display common APRS protocol violations correctly",
&gPREF_APRS_LAX );
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -381,3 +381,15 @@ proto_reg_handoff_ax25_kiss(void)
ax25_handle = find_dissector( "ax25" );
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -451,3 +451,15 @@ proto_reg_handoff_ax25(void)
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -118,3 +118,15 @@ proto_reg_handoff_bctp(void)
text_handle = find_dissector("data-text-lines");
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -85,3 +85,15 @@ void proto_register_bt_oui(void)
llc_add_oui(OUI_BLUETOOTH, "llc.bluetooth_pid", "LLC Bluetooth OUI PID", hf);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -131,8 +131,8 @@ dissect_erspan(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
guint32 offset = 0;
guint16 version;
col_set_str(pinfo->cinfo, COL_PROTOCOL, PROTO_SHORT_NAME);
col_set_str(pinfo->cinfo, COL_INFO, PROTO_SHORT_NAME ":");
col_set_str(pinfo->cinfo, COL_PROTOCOL, PROTO_SHORT_NAME);
col_set_str(pinfo->cinfo, COL_INFO, PROTO_SHORT_NAME ":");
if (tree) {
@ -206,8 +206,8 @@ dissect_erspan(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
offset += 12;
}
eth_tvb = tvb_new_subset_remaining(tvb, offset);
call_dissector(ethnofcs_handle, eth_tvb, pinfo, tree);
eth_tvb = tvb_new_subset_remaining(tvb, offset);
call_dissector(ethnofcs_handle, eth_tvb, pinfo, tree);
}
void
@ -305,11 +305,23 @@ proto_reg_handoff_erspan(void)
{
dissector_handle_t erspan_handle;
ethnofcs_handle = find_dissector("eth_withoutfcs");
ethnofcs_handle = find_dissector("eth_withoutfcs");
erspan_handle = create_dissector_handle(dissect_erspan, proto_erspan);
dissector_add_uint("gre.proto", GRE_ERSPAN_88BE, erspan_handle);
dissector_add_uint("gre.proto", GRE_ERSPAN_22EB, erspan_handle);
dissector_add_uint("gre.proto", GRE_ERSPAN_88BE, erspan_handle);
dissector_add_uint("gre.proto", GRE_ERSPAN_22EB, erspan_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -73,3 +73,15 @@ proto_register_cisco_oui(void)
llc_add_oui(OUI_CISCO, "llc.cisco_pid", "LLC Cisco OUI PID", hf);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -209,3 +209,15 @@ proto_reg_handoff_cwids(void)
saved_udp_port = global_udp_port;
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -689,3 +689,15 @@ proto_reg_handoff_dbus(void)
dissector_add_for_decode_as("tcp.port", dbus_handle_tcp);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -105,10 +105,10 @@ conv_dissect_who_are_you2_rqst (tvbuff_t *tvb, int offset,
* [in] uuid_t *actuid,
* [in] unsigned32 boot_time,
*/
e_uuid_t actuid;
e_uuid_t actuid;
offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_conv_who_are_you2_rqst_actuid, &actuid);
offset = dissect_ndr_time_t(tvb, offset, pinfo, tree, di, drep, hf_conv_who_are_you2_rqst_boot_time, NULL);
offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_conv_who_are_you2_rqst_actuid, &actuid);
offset = dissect_ndr_time_t(tvb, offset, pinfo, tree, di, drep, hf_conv_who_are_you2_rqst_boot_time, NULL);
col_add_fstr(pinfo->cinfo, COL_INFO,
"conv_who_are_you2 request actuid: %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
@ -148,17 +148,17 @@ conv_dissect_who_are_you2_resp (tvbuff_t *tvb, int offset,
static dcerpc_sub_dissector conv_dissectors[] = {
{ 0, "who_are_you",
conv_dissect_who_are_you_rqst, conv_dissect_who_are_you_resp },
{ 1, "who_are_you2",
conv_dissect_who_are_you2_rqst, conv_dissect_who_are_you2_resp },
{ 2, "are_you_there",
NULL, NULL },
{ 3, "who_are_you_auth",
NULL, NULL },
{ 4, "who_are_you_auth_more",
NULL, NULL },
{ 0, NULL, NULL, NULL }
{ 0, "who_are_you",
conv_dissect_who_are_you_rqst, conv_dissect_who_are_you_resp },
{ 1, "who_are_you2",
conv_dissect_who_are_you2_rqst, conv_dissect_who_are_you2_resp },
{ 2, "are_you_there",
NULL, NULL },
{ 3, "who_are_you_auth",
NULL, NULL },
{ 4, "who_are_you_auth_more",
NULL, NULL },
{ 0, NULL, NULL, NULL }
};
void
@ -202,3 +202,15 @@ proto_reg_handoff_conv (void)
dcerpc_init_uuid (proto_conv, ett_conv, &uuid_conv, ver_conv, conv_dissectors, hf_conv_opnum);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -2582,3 +2582,15 @@ proto_reg_handoff_dect(void)
dissector_add_uint("ethertype", ETHERTYPE_DECT , dect_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -1170,3 +1170,15 @@ proto_reg_handoff_dhcpfo(void)
saved_tcp_port = tcp_port_pref;
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -188,3 +188,15 @@ proto_register_dmx_chan(void)
col_count, FALSE);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -303,3 +303,15 @@ proto_register_dmx_sip(void)
register_dissector("dmx-sip", dissect_dmx_sip, proto_dmx_sip);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -108,3 +108,15 @@ proto_register_dmx_text(void)
register_dissector("dmx-text", dissect_dmx_text, proto_dmx_text);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -225,3 +225,15 @@ proto_reg_handoff_dpnss_link(void)
dpnss_handle = find_dissector("dpnss");
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -1226,4 +1226,15 @@ proto_reg_handoff_dtpt(void)
dissector_add_uint("tcp.port", gbl_dtptServerPort, dtpt_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -239,3 +239,15 @@ proto_reg_handoff_etv(void)
dsmcc_handle = find_dissector("mp2t-dsmcc");
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -446,10 +446,10 @@ dissect_fix_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
/* Register the protocol with Wireshark */
static void fix_prefs(void)
{
dissector_delete_uint_range("tcp.port", fix_tcp_range, fix_handle);
dissector_delete_uint_range("tcp.port", fix_tcp_range, fix_handle);
g_free(fix_tcp_range);
fix_tcp_range = range_copy(global_fix_tcp_range);
dissector_add_uint_range("tcp.port", fix_tcp_range, fix_handle);
dissector_add_uint_range("tcp.port", fix_tcp_range, fix_handle);
}
/* this format is require because a script is used to build the C function
@ -536,3 +536,15 @@ proto_reg_handoff_fix(void)
dissector_add_for_decode_as("tcp.port", fix_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 4
* tab-width: 8
* indent-tabs-mode: nil
* End:
*
* vi: set shiftwidth=4 tabstop=8 expandtab:
* :indentSize=4:tabSize=8:noTabs=true:
*/

View File

@ -51,3 +51,15 @@ proto_register_force10_oui(void)
llc_add_oui(OUI_FORCE10, "llc.force10_pid", "LLC FORCE10 OUI PID", hf);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -45,11 +45,11 @@ static int ett_g723 = -1;
/* RFC 3551
The least significant two bits of the first
octet in the frame determine the frame size and codec type:
bits content octets/frame
00 high-rate speech (6.3 kb/s) 24
01 low-rate speech (5.3 kb/s) 20
10 SID frame 4
11 reserved
bits content octets/frame
00 high-rate speech (6.3 kb/s) 24
01 low-rate speech (5.3 kb/s) 20
10 SID frame 4
11 reserved
*/
static const value_string g723_frame_size_and_codec_type_value[] = {
@ -144,4 +144,15 @@ proto_register_g723(void)
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -2120,3 +2120,15 @@ proto_reg_handoff_gadu_gadu(void)
xml_handle = find_dissector("xml");
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -255,7 +255,7 @@ static const vsff gluster_cli_2_proc[] = {
gluster_cli_2_common_call, gluster_cli_2_common_reply
},
{
GLUSTER_CLI_2_GET_VOLUME, "GET_VOLUME",
GLUSTER_CLI_2_GET_VOLUME, "GET_VOLUME",
gluster_cli_2_common_call, gluster_cli_2_common_reply
},
{
@ -538,3 +538,15 @@ proto_reg_handoff_gluster_cli(void)
hf_gluster_cli_2_proc);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -271,3 +271,15 @@ proto_reg_handoff_gluster_dump(void)
hf_gluster_dump_proc);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -602,11 +602,11 @@ static int
_glusterfs_gfs3_common_readdir_reply(tvbuff_t *tvb, proto_tree *tree, int offset)
{
proto_item *errno_item;
guint op_errno;
guint op_errno;
offset = dissect_rpc_uint32(tvb, tree, hf_glusterfs_entries, offset);
if (tree) {
if (tree) {
op_errno = tvb_get_ntohl(tvb, offset);
errno_item = proto_tree_add_int(tree, hf_gluster_op_errno, tvb,
offset, 4, op_errno);
@ -1460,7 +1460,7 @@ glusterfs_gfs3_3_op_readdir_reply(tvbuff_t *tvb, int offset,
glusterfs_gfs3_3_op_readdir_entry, NULL);
offset = gluster_rpc_dissect_dict(tree, tvb, hf_glusterfs_dict, offset);
return offset;
return offset;
}
static int
@ -1637,7 +1637,7 @@ glusterfs_gfs3_3_op_readdirp_reply(tvbuff_t *tvb, int offset,
glusterfs_gfs3_3_op_readdirp_entry, NULL);
offset = gluster_rpc_dissect_dict(tree, tvb, hf_glusterfs_dict, offset);
return offset;
return offset;
}
/* READDIRP and DISCARD both use this */
@ -2691,3 +2691,15 @@ proto_reg_handoff_glusterfs(void)
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -460,7 +460,6 @@ static void llc_gprs_dissect_xid(tvbuff_t *tvb,
}
/* Code to actually dissect the packets */
static void
dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
@ -727,7 +726,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
ctrl_f_tree = proto_tree_add_subtree_format(llcgprs_tree, tvb, offset,
(llc_data_reported_length-offset), ett_llcgprs_sframe, NULL,
"TOM Envelope - Protocol: %s",
"TOM Envelope - Protocol: %s",
val_to_str(tom_pd, tompd_formats, "Unknown (%d)"));
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_tom_rl, tvb, offset, 1, tom_byte);
@ -855,7 +854,8 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
ctrl_f_tree = proto_tree_add_subtree_format(llcgprs_tree, tvb, offset,
(llc_data_reported_length-offset), ett_llcgprs_sframe, NULL,
"TOM Envelope - Protocol: %s", val_to_str(tom_pd, tompd_formats, "Unknown (%d)"));
"TOM Envelope - Protocol: %s",
val_to_str(tom_pd, tompd_formats, "Unknown (%d)"));
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_tom_rl, tvb, offset, 1, tom_byte);
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_tom_pd, tvb, offset, 1, tom_byte);
@ -915,7 +915,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
ctrl_f_tree = proto_tree_add_subtree_format(llcgprs_tree, tvb, offset-2,
2, ett_llcgprs_ctrlf, NULL,
"Unconfirmed Information format - UI, N(U) = %u", nu);
"Unconfirmed Information format - UI, N(U) = %u", nu);
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_U_fmt, tvb, offset-2,
2, ctrl_fld_ui_s);
@ -958,7 +958,7 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
ctrl_f_tree = proto_tree_add_subtree_format(llcgprs_tree, tvb, offset,
(llc_data_reported_length-offset), ett_llcgprs_sframe, NULL,
"TOM Envelope - Protocol: %s",
"TOM Envelope - Protocol: %s",
val_to_str(tom_pd, tompd_formats, "Unknown (%d)"));
proto_tree_add_uint(ctrl_f_tree, hf_llcgprs_tom_rl, tvb, offset, 1, tom_byte);
@ -1126,8 +1126,6 @@ dissect_llcgprs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* Register the protocol with Wireshark */
/* this format is require because a script is used to build the C function */
/* that calls all the protocol registration. */
void
proto_register_llcgprs(void)
@ -1359,9 +1357,6 @@ proto_register_llcgprs(void)
}
/* If this dissector uses sub-dissector registration add a registration routine. */
/* This format is required because a script is used to find these routines and */
/* create the code that calls these routines. */
void
proto_reg_handoff_llcgprs(void)
{
@ -1375,3 +1370,15 @@ proto_reg_handoff_llcgprs(void)
sndcp_xid_handle = find_dissector("sndcpxid");
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -816,22 +816,22 @@ typedef enum
BE_UDEF_130, /* Undefined */
BE_KC128, /* Kc128 */
BE_CSG_ID, /* CSG Identifier */
BE_REDIR_ATT_FLG, /* Redirect Attempt Flag 3.2.2.111 */
BE_REROUTE_REJ_CAUSE, /* Reroute Reject Cause 3.2.2.112 */
BE_SEND_SEQN, /* Send Sequence Number 3.2.2.113 */
BE_REROUTE_OUTCOME, /* Reroute complete outcome 3.2.2.114 */
BE_GLOBAL_CALL_REF, /* Global Call Reference 3.2.2.115 */
BE_LCLS_CONF, /* LCLS-Configuration 3.2.2.116 */
BE_LCLS_CON_STATUS_CONTROL, /* LCLS-Connection-Status-Control 3.2.2.117 */
BE_LCLS_CORR_NOT_NEEDED, /* LCLS-Correlation-Not-Needed 3.2.2.118 */
BE_LCLS_BSS_STATUS, /* LCLS-BSS-Status 3.2.2.119 */
BE_LCLS_BREAK_REQ, /* LCLS-Break-Request 3.2.2.120 */
BE_CSFB_IND, /* CSFB Indication 3.2.2.121 */
BE_CS_TO_PS_SRVCC, /* CS to PS SRVCC 3.2.2.122 */
BE_SRC_ENB_2_TGT_ENB_TRANSP_INF, /* Source eNB to target eNB transparent information (E-UTRAN)" 3.2.2.123 */
BE_CS_TO_PS_SRVCC_IND, /* CS to PS SRVCC Indication 3.2.2.124 */
BE_CN_TO_MS_TRANSP, /* CN to MS transparent information 3.2.2.125 */
BE_SELECTED_PLMN_ID, /* Selected PLMN ID 3.2.2.126 */
BE_REDIR_ATT_FLG, /* Redirect Attempt Flag 3.2.2.111 */
BE_REROUTE_REJ_CAUSE, /* Reroute Reject Cause 3.2.2.112 */
BE_SEND_SEQN, /* Send Sequence Number 3.2.2.113 */
BE_REROUTE_OUTCOME, /* Reroute complete outcome 3.2.2.114 */
BE_GLOBAL_CALL_REF, /* Global Call Reference 3.2.2.115 */
BE_LCLS_CONF, /* LCLS-Configuration 3.2.2.116 */
BE_LCLS_CON_STATUS_CONTROL, /* LCLS-Connection-Status-Control 3.2.2.117 */
BE_LCLS_CORR_NOT_NEEDED, /* LCLS-Correlation-Not-Needed 3.2.2.118 */
BE_LCLS_BSS_STATUS, /* LCLS-BSS-Status 3.2.2.119 */
BE_LCLS_BREAK_REQ, /* LCLS-Break-Request 3.2.2.120 */
BE_CSFB_IND, /* CSFB Indication 3.2.2.121 */
BE_CS_TO_PS_SRVCC, /* CS to PS SRVCC 3.2.2.122 */
BE_SRC_ENB_2_TGT_ENB_TRANSP_INF, /* Source eNB to target eNB transparent information (E-UTRAN)" 3.2.2.123 */
BE_CS_TO_PS_SRVCC_IND, /* CS to PS SRVCC Indication 3.2.2.124 */
BE_CN_TO_MS_TRANSP, /* CN to MS transparent information 3.2.2.125 */
BE_SELECTED_PLMN_ID, /* Selected PLMN ID 3.2.2.126 */
BE_NONE /* NONE */
}
bssmap_elem_idx_t;
@ -1280,7 +1280,7 @@ static const value_string gsm_a_bssap_channel_rate_and_type_vals[] = {
{ 0x1a, "Full or Half rate channel, Full rate preferred changes between full and half rate not allowed after first allocation"},
{ 0x1b, "Full or Half rate channel, Half rate preferred changes between full and half rate not allowed after first allocation"},
{ 0x1f, "Full or Half rate channel, changes between full and half rate not allowed after first allocation"},
{ 0, NULL }
{ 0, NULL }
};
/* Bits 7-1 indicate the permitted speech version identifier; */
@ -1337,7 +1337,7 @@ be_chan_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 of
{
proto_tree_add_item(tree, hf_gsm_a_bssmap_chan_type_extension, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_gsm_a_bssmap_perm_speech_v_ind, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
curr_offset++;
}
while ((len - (curr_offset - offset)) > 0);
}
@ -3869,7 +3869,7 @@ be_aoip_trans_lay_add(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
if ((!pinfo->fd->flags.visited) && rtp_port != 0) {
rtp_add_address(pinfo, &rtp_dst_addr, rtp_port, 0, "BSS MAP", pinfo->fd->num, FALSE, 0);
rtcp_add_address(pinfo, &rtp_dst_addr, rtp_port+1, 0, "BSS MAP", pinfo->fd->num);
rtcp_add_address(pinfo, &rtp_dst_addr, rtp_port+1, 0, "BSS MAP", pinfo->fd->num);
}
return(curr_offset - offset);
}
@ -4165,7 +4165,7 @@ be_speech_codec(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
val_to_str_const(tvb_get_guint8(tvb, curr_offset) & 0x0f,
bssap_speech_codec_values,
"Unknown"));
curr_offset++;
curr_offset++;
consumed++;
proto_tree_add_text(subtree, tvb, curr_offset, 2, "S0 - S15");
curr_offset+=2;
@ -4429,7 +4429,7 @@ be_global_call_ref(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
guint32 curr_offset;
curr_offset = offset;
/* Global Call Reference Identifier */
/* Global Call Reference Identifier */
proto_tree_add_text(tree, tvb, curr_offset, len, "Field Element not decoded yet");
return len;
@ -4685,24 +4685,24 @@ guint16 (*bssmap_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
NULL, /* Undefined */
be_kc128, /* Kc128 */
be_csg_id, /* CSG Identifier */
NULL, /* Redirect Attempt Flag 3.2.2.111 No data */
be_reroute_rej_cause, /* Reroute Reject Cause 3.2.2.112 */
be_send_seqn, /* Send Sequence Number 3.2.2.113 */
be_reroute_outcome, /* Reroute complete outcome 3.2.2.114 */
be_global_call_ref, /* Global Call Reference 3.2.2.115 */
be_lcls_conf, /* LCLS-Configuration 3.2.2.116 */
be_lcls_con_status_control, /* LCLS-Connection-Status-Control 3.2.2.117 */
NULL, /* LCLS-Correlation-Not-Needed 3.2.2.118 No data */
be_lcls_bss_status, /* LCLS-BSS-Status 3.2.2.119 */
NULL, /* LCLS-Break-Request 3.2.2.120 No data */
NULL, /* CSFB Indication 3.2.2.121 No data */
NULL, /* Redirect Attempt Flag 3.2.2.111 No data */
be_reroute_rej_cause, /* Reroute Reject Cause 3.2.2.112 */
be_send_seqn, /* Send Sequence Number 3.2.2.113 */
be_reroute_outcome, /* Reroute complete outcome 3.2.2.114 */
be_global_call_ref, /* Global Call Reference 3.2.2.115 */
be_lcls_conf, /* LCLS-Configuration 3.2.2.116 */
be_lcls_con_status_control, /* LCLS-Connection-Status-Control 3.2.2.117 */
NULL, /* LCLS-Correlation-Not-Needed 3.2.2.118 No data */
be_lcls_bss_status, /* LCLS-BSS-Status 3.2.2.119 */
NULL, /* LCLS-Break-Request 3.2.2.120 No data */
NULL, /* CSFB Indication 3.2.2.121 No data */
#if 0
BE_CS_TO_PS_SRVCC, /* CS to PS SRVCC 3.2.2.122 */
BE_SRC_ENB_2_TGT_ENB_TRANSP_INF, /* Source eNB to target eNB transparent information (E-UTRAN)" 3.2.2.123 */
BE_CS_TO_PS_SRVCC_IND, /* CS to PS SRVCC Indication 3.2.2.124 */
BE_CN_TO_MS_TRANSP, /* CN to MS transparent information 3.2.2.125 */
BE_CS_TO_PS_SRVCC, /* CS to PS SRVCC 3.2.2.122 */
BE_SRC_ENB_2_TGT_ENB_TRANSP_INF, /* Source eNB to target eNB transparent information (E-UTRAN)" 3.2.2.123 */
BE_CS_TO_PS_SRVCC_IND, /* CS to PS SRVCC Indication 3.2.2.124 */
BE_CN_TO_MS_TRANSP, /* CN to MS transparent information 3.2.2.125 */
#endif
be_selected_plmn_id, /* Selected PLMN ID 3.2.2.126 */
be_selected_plmn_id, /* Selected PLMN ID 3.2.2.126 */
NULL /* NONE */
};
@ -4930,7 +4930,7 @@ static guint16 (*bssmap_bss_to_bss_element_fcn[])(tvbuff_t *tvb, proto_tree *tre
NULL, /* NONE */
};
#define NUM_BSS_ELEMENT_FCNS (int)(sizeof(bssmap_bss_to_bss_element_fcn)/(sizeof bssmap_bss_to_bss_element_fcn[0]))
#define NUM_BSS_ELEMENT_FCNS (int)(sizeof(bssmap_bss_to_bss_element_fcn)/(sizeof bssmap_bss_to_bss_element_fcn[0]))
static guint16
be_field_element_dissect(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
@ -4982,7 +4982,7 @@ be_field_element_dissect(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gu
/* dissect the field element */
curr_offset += (*bssmap_bss_to_bss_element_fcn[idx])(tvb, bss_to_bss_tree, pinfo, curr_offset, ie_len, NULL, 0);
EXTRANEOUS_DATA_CHECK_EXPERT(ie_len, curr_offset - fe_start_offset, pinfo, &ei_gsm_a_bssmap_extraneous_data);
EXTRANEOUS_DATA_CHECK_EXPERT(ie_len, curr_offset - fe_start_offset, pinfo, &ei_gsm_a_bssmap_extraneous_data);
}
}
@ -5633,7 +5633,7 @@ bssmap_clear_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
ELEM_OPT_TLV(BE_L3_HEADER_INFO, GSM_A_PDU_TYPE_BSSMAP, BE_L3_HEADER_INFO, NULL);
/* Cause 3.2.2.5 MSC-BSS M 3-4 */
ELEM_MAND_TLV(BE_CAUSE, GSM_A_PDU_TYPE_BSSMAP, BE_CAUSE, NULL);
/* CSFB Indication 3.2.2.121 MSC-BSS O 1 */
/* CSFB Indication 3.2.2.121 MSC-BSS O 1 */
ELEM_OPT_T(BE_CSFB_IND, GSM_A_PDU_TYPE_BSSMAP, BE_CSFB_IND, NULL);
EXTRANEOUS_DATA_CHECK(curr_len, 0);
@ -7052,7 +7052,7 @@ bssmap_reroute_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
/* IMSI 3.2.2.6 MSC-BSS O (note 5) 3-10 */
ELEM_OPT_TLV(BE_IMSI, GSM_A_PDU_TYPE_BSSMAP, BE_IMSI, NULL);
EXTRANEOUS_DATA_CHECK(curr_len, 0);
EXTRANEOUS_DATA_CHECK(curr_len, 0);
}
/*
@ -7234,7 +7234,7 @@ static void (*bssmap_msg_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pi
NULL, /* NONE */
};
#define NUM_BSSMAP_MSG_FCNS (int)(sizeof(bssmap_msg_fcn)/sizeof(bssmap_msg_fcn[0]))
#define NUM_BSSMAP_MSG_FCNS (int)(sizeof(bssmap_msg_fcn)/sizeof(bssmap_msg_fcn[0]))
void
dissect_bssmap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
@ -8139,3 +8139,15 @@ proto_reg_handoff_gsm_a_bssmap(void)
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 4
* tab-width: 8
* indent-tabs-mode: nil
* End:
*
* vi: set shiftwidth=4 tabstop=8 expandtab:
* :indentSize=4:tabSize=8:noTabs=true:
*/

View File

@ -1430,3 +1430,15 @@ proto_register_abis_om2000(void)
proto_abis_om2000);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -308,3 +308,15 @@ proto_reg_handoff_gsm_um(void)
dissector_add_uint("wtap_encap", WTAP_ENCAP_GSM_UM, gsm_um_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -109,4 +109,15 @@ void proto_register_h248_dot10(void) {
h248_register_package(&h248_pkg_CHP,REPLACE_PKG);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -47,112 +47,123 @@ static gint ett_h248_2_dtone_dtt_obs_evt = -1;
static const value_string hf_h248_2_dtone_dtt_obs_evt_val_values[] = {
/*For FAX*/
{ 0x0001, "CNG"}, /* A T.30 fax calling tone */
{ 0x0002, "V21flag"}, /* V21 tone and flags for fax answering */
/* For TEXT */
{ 0x0003, "XCI"}, /* A V.18 XCI */
{ 0x0004, "V18txp1"}, /* A V.18 txp signal in channel V.21(1) */
{ 0x0005, "V18txp2"}, /* A V.18 txp signal in channel V.21(2) */
{ 0x0006, "BellHi"}, /* A Bell 103 carrier on the high channel */
{ 0x0007, "BellLo"}, /* A Bell 103 low channel */
{ 0x0008, "Baudot45"}, /* Baudot45 initial carrier and characters */
{ 0x0009, "Baudot50"}, /* A Baudot50 initial carrier and characters */
{ 0x000a, "Edt"}, /* An EDT initial tone and characters */
{ 0x000b, "DTMF"}, /* DTMF signals */
{ 0x001c, "CTM"}, /* CTM signals */
/* For DATA */
{ 0x000c, "Sig"}, /* Modulation signal from a mode only used for data, i.e., not V.21, V.23 nor Bell 103 */
/* Common to TEXT and DATA */
{ 0x000d, "CT"}, /* A V.25 calling tone */
{ 0x000e, "V21hi"}, /* A V.21 carrier on the higher frequency channel */
{ 0x000f, "V21lo"}, /* A V.21 carrier on the low frequency channel */
{ 0x0010, "V23hi"}, /* A V.23 high carrier */
{ 0x0011, "V23lo"}, /* A V.23 low carrier */
{ 0x0012, "CI"}, /* A V.8 CI with contents in "dtvalue" */
/* Common to FAX, TEXT and DATA */
{ 0x0013, "ANS(T.30 CED)"}, /* V.25 ANS, equivalent to T.30 CED from answering terminal */
{ 0x0014, "ANSbar"}, /* V.25 ANS with phase reversals" */
{ 0x0015, "ANSAM"}, /* V.8 ANSam */
{ 0x0016, "ANSAMbar"}, /* V.8 ANSam with phase reversals */
{ 0x0017, "CM"}, /* V.8 CM with contents in "dtvalue" */
{ 0x0018, "CJ"}, /* V.8 CJ */
{ 0x0019, "JM"}, /* V.8 JM with contents in "dtvalue" */
{ 0x001a, "ENDOFSIG"}, /* End of reported signal detected reported for continuous or repeated signals */
{ 0x001b, "V8BIS"}, /* V.8 bis signal, with signal type in parameter V8bistype and value in "dtvalue" */
{ 0, NULL }
/*For FAX*/
{ 0x0001, "CNG"}, /* A T.30 fax calling tone */
{ 0x0002, "V21flag"}, /* V21 tone and flags for fax answering */
/* For TEXT */
{ 0x0003, "XCI"}, /* A V.18 XCI */
{ 0x0004, "V18txp1"}, /* A V.18 txp signal in channel V.21(1) */
{ 0x0005, "V18txp2"}, /* A V.18 txp signal in channel V.21(2) */
{ 0x0006, "BellHi"}, /* A Bell 103 carrier on the high channel */
{ 0x0007, "BellLo"}, /* A Bell 103 low channel */
{ 0x0008, "Baudot45"}, /* Baudot45 initial carrier and characters */
{ 0x0009, "Baudot50"}, /* A Baudot50 initial carrier and characters */
{ 0x000a, "Edt"}, /* An EDT initial tone and characters */
{ 0x000b, "DTMF"}, /* DTMF signals */
{ 0x001c, "CTM"}, /* CTM signals */
/* For DATA */
{ 0x000c, "Sig"}, /* Modulation signal from a mode only used for data, i.e., not V.21, V.23 nor Bell 103 */
/* Common to TEXT and DATA */
{ 0x000d, "CT"}, /* A V.25 calling tone */
{ 0x000e, "V21hi"}, /* A V.21 carrier on the higher frequency channel */
{ 0x000f, "V21lo"}, /* A V.21 carrier on the low frequency channel */
{ 0x0010, "V23hi"}, /* A V.23 high carrier */
{ 0x0011, "V23lo"}, /* A V.23 low carrier */
{ 0x0012, "CI"}, /* A V.8 CI with contents in "dtvalue" */
/* Common to FAX, TEXT and DATA */
{ 0x0013, "ANS(T.30 CED)"}, /* V.25 ANS, equivalent to T.30 CED from answering terminal */
{ 0x0014, "ANSbar"}, /* V.25 ANS with phase reversals" */
{ 0x0015, "ANSAM"}, /* V.8 ANSam */
{ 0x0016, "ANSAMbar"}, /* V.8 ANSam with phase reversals */
{ 0x0017, "CM"}, /* V.8 CM with contents in "dtvalue" */
{ 0x0018, "CJ"}, /* V.8 CJ */
{ 0x0019, "JM"}, /* V.8 JM with contents in "dtvalue" */
{ 0x001a, "ENDOFSIG"}, /* End of reported signal detected reported for continuous or repeated signals */
{ 0x001b, "V8BIS"}, /* V.8 bis signal, with signal type in parameter V8bistype and value in "dtvalue" */
{ 0, NULL }
};
static h248_pkg_param_t h248_2_dtone_dtt_obs_evt_params[] = {
{ 0x0001, &hf_h248_2_dtone_dtt_obs_evt_val, h248_param_ber_integer, NULL },
{ 0, NULL, NULL, NULL}
{ 0x0001, &hf_h248_2_dtone_dtt_obs_evt_val, h248_param_ber_integer, NULL },
{ 0, NULL, NULL, NULL}
};
static const value_string h248_2_ctype_events_vals[] = {
{ 0x0001, "Discriminating Tone Detected(dtone)"},
{ 0x0002, "Call Type Discrimination Result(calldisres)"},
{ 0, NULL }
{ 0x0001, "Discriminating Tone Detected(dtone)"},
{ 0x0002, "Call Type Discrimination Result(calldisres)"},
{ 0, NULL }
};
static h248_pkg_evt_t h248_pkg_generic_cause_evts[] = {
{ 0x0001, &hf_h248_2_dtone_dtt_obs_evt, &ett_h248_2_dtone_dtt_obs_evt, h248_2_dtone_dtt_obs_evt_params, h248_2_ctype_events_vals},
{ 0, NULL, NULL, NULL, NULL}
{ 0x0001, &hf_h248_2_dtone_dtt_obs_evt, &ett_h248_2_dtone_dtt_obs_evt, h248_2_dtone_dtt_obs_evt_params, h248_2_ctype_events_vals},
{ 0, NULL, NULL, NULL, NULL}
};
/* Call Type Discrimination Package */
static h248_package_t h248_pkg_ctype = {
0x0011, /* Id */
&proto_h248_2, /* hfid */
&ett_h248_2, /* ett */
0x0011, /* Id */
&proto_h248_2, /* hfid */
&ett_h248_2, /* ett */
NULL, /* value_string param_names */
NULL, /* value_string signal_names */
h248_2_ctype_events_vals, /* value_string event_names */
NULL, /* value_string stats_names */
NULL, /* value_string param_names */
NULL, /* value_string signal_names */
h248_2_ctype_events_vals, /* value_string event_names */
NULL, /* value_string stats_names */
NULL, /* properties */
NULL, /* signals */
h248_pkg_generic_cause_evts, /* events */
NULL /* statistics */
NULL, /* properties */
NULL, /* signals */
h248_pkg_generic_cause_evts, /* events */
NULL /* statistics */
};
void proto_register_h248_dot2(void) {
static hf_register_info hf[] = {
static hf_register_info hf[] = {
#if 0
{ &hf_h248_2_dtone_evt,
{ "Discriminating Tone Type", "h248.2.dtt",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL }
},
{ &hf_h248_2_dtone_evt,
{ "Discriminating Tone Type", "h248.2.dtt",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL }
},
#endif
{ &hf_h248_2_dtone_dtt_obs_evt,
{ "Discriminating Tone Type(dtt)", "h248.2.dtt",
FT_BYTES, BASE_NONE, NULL, 0,
{ &hf_h248_2_dtone_dtt_obs_evt,
{ "Discriminating Tone Type(dtt)", "h248.2.dtt",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL },
},
{ &hf_h248_2_dtone_dtt_obs_evt_val,
{ "call type", "h248.2.dtt.val",
FT_UINT32, BASE_DEC, VALS(hf_h248_2_dtone_dtt_obs_evt_val_values) , 0,
NULL, HFILL }
},
},
{ &hf_h248_2_dtone_dtt_obs_evt_val,
{ "call type", "h248.2.dtt.val",
FT_UINT32, BASE_DEC, VALS(hf_h248_2_dtone_dtt_obs_evt_val_values) , 0,
NULL, HFILL }
},
};
};
static gint *ett[] = {
&ett_h248_2,
&ett_h248_2_dtone_dtt_obs_evt,
};
static gint *ett[] = {
&ett_h248_2,
&ett_h248_2_dtone_dtt_obs_evt,
};
proto_h248_2 = proto_register_protocol(PNAME, PSNAME, PFNAME);
proto_h248_2 = proto_register_protocol(PNAME, PSNAME, PFNAME);
proto_register_field_array(proto_h248_2, hf, array_length(hf));
proto_register_field_array(proto_h248_2, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
proto_register_subtree_array(ett, array_length(ett));
h248_register_package(&h248_pkg_ctype,MERGE_PKG_HIGH);
h248_register_package(&h248_pkg_ctype,MERGE_PKG_HIGH);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 4
* tab-width: 8
* indent-tabs-mode: nil
* End:
*
* vi: set shiftwidth=4 tabstop=8 expandtab:
* :indentSize=4:tabSize=8:noTabs=true:
*/

View File

@ -643,3 +643,15 @@ void proto_register_h248_3gpp(void) {
h248_register_package(&h248_package_threegint, REPLACE_PKG);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -174,4 +174,15 @@ void proto_register_h248_7(void) {
h248_register_package(&h248_pkg_an,REPLACE_PKG);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -1087,7 +1087,7 @@ void proto_register_h248_annex_e(void) {
&ett_h248_pkg_tonedet_evt_etd,
&ett_h248_pkg_tonedet_evt_ltd,
/* dg 0x0005 */
/* dg 0x0005 */
&ett_h248_pkg_dg,
&ett_h248_pkg_dg_sig_pt,
&ett_h248_pkg_dg_sig_d0,
@ -1177,4 +1177,15 @@ void proto_register_h248_annex_e(void) {
h248_register_package(&h248_pkg_tdmc,MERGE_PKG_LOW); /* 0x000d */
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -241,3 +241,15 @@ proto_reg_handoff_interlink(void)
data_handle = find_dissector("data");
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -264,3 +264,15 @@ proto_reg_handoff_tcpencap(void)
}
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -32,8 +32,8 @@
void proto_register_ipsictl(void);
void proto_reg_handoff_ipsictl(void);
#define IPSICTL_PORT 5010
#define IPSICTL_PDU_MAGIC 0x0300
#define IPSICTL_PORT 5010
#define IPSICTL_PDU_MAGIC 0x0300
static int proto_ipsictl = -1;
@ -57,16 +57,16 @@ static void dissect_ipsictl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
int offset = 0;
int loffset = 0;
int llength = 0;
int remaining_length;
int remaining_length;
guint16 magic;
guint16 length;
guint16 type=0;
guint16 sequence=0;
int first_sequence=-1;
int last_sequence=-1;
int first_sequence=-1;
int last_sequence=-1;
guint16 field1=0;
guint16 pdu=0;
int haspdus=0;
int haspdus=0;
remaining_length=tvb_reported_length_remaining(tvb, offset);
@ -192,33 +192,33 @@ void proto_register_ipsictl(void)
static hf_register_info hf[] = {
{ &hf_ipsictl_pdu,
{ "PDU", "ipsictl.pdu",
FT_UINT16, BASE_DEC, NULL, 0x0,
"IPSICTL PDU", HFILL }},
{ "PDU", "ipsictl.pdu",
FT_UINT16, BASE_DEC, NULL, 0x0,
"IPSICTL PDU", HFILL }},
{ &hf_ipsictl_magic,
{ "Magic", "ipsictl.magic",
FT_UINT16, BASE_HEX, NULL, 0x0,
"IPSICTL Magic", HFILL }},
{ "Magic", "ipsictl.magic",
FT_UINT16, BASE_HEX, NULL, 0x0,
"IPSICTL Magic", HFILL }},
{ &hf_ipsictl_length,
{ "Length", "ipsictl.length",
FT_UINT16, BASE_HEX, NULL, 0x0,
"IPSICTL Length", HFILL }},
{ "Length", "ipsictl.length",
FT_UINT16, BASE_HEX, NULL, 0x0,
"IPSICTL Length", HFILL }},
{ &hf_ipsictl_type,
{ "Type", "ipsictl.type",
FT_UINT16, BASE_HEX, NULL, 0x0,
"IPSICTL Type", HFILL }},
{ "Type", "ipsictl.type",
FT_UINT16, BASE_HEX, NULL, 0x0,
"IPSICTL Type", HFILL }},
{ &hf_ipsictl_sequence,
{ "Sequence", "ipsictl.sequence",
FT_UINT16, BASE_HEX, NULL, 0x0,
"IPSICTL Sequence", HFILL }},
{ "Sequence", "ipsictl.sequence",
FT_UINT16, BASE_HEX, NULL, 0x0,
"IPSICTL Sequence", HFILL }},
{ &hf_ipsictl_field1,
{ "Field1", "ipsictl.field1",
FT_UINT16, BASE_HEX, NULL, 0x0,
"IPSICTL Field1", HFILL }},
{ "Field1", "ipsictl.field1",
FT_UINT16, BASE_HEX, NULL, 0x0,
"IPSICTL Field1", HFILL }},
{ &hf_ipsictl_data,
{ "Data", "ipsictl.data",
FT_BYTES, BASE_NONE, NULL, 0x0,
"IPSICTL data", HFILL }},
{ "Data", "ipsictl.data",
FT_BYTES, BASE_NONE, NULL, 0x0,
"IPSICTL data", HFILL }},
};
static gint *ett[] = {
@ -243,3 +243,15 @@ void proto_reg_handoff_ipsictl(void)
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local Variables:
* c-basic-offset: 2
* tab-width: 8
* indent-tabs-mode: nil
* End:
*
* ex: set shiftwidth=2 tabstop=8 expandtab:
* :indentSize=2:tabSize=8:noTabs=true:
*/

View File

@ -624,3 +624,15 @@ proto_reg_handoff_json(void)
text_lines_handle = find_dissector("data-text-lines");
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -78,8 +78,8 @@ static int hf_kdp_bcst_flag = -1;
static int hf_kdp_dup_flag = -1;
static void dissect_kdp(tvbuff_t *tvb,
packet_info *pinfo,
proto_tree *tree) {
packet_info *pinfo,
proto_tree *tree) {
guint body_len;
guint8 version = 0;
guint8 header_len = 0;
@ -111,9 +111,9 @@ static void dissect_kdp(tvbuff_t *tvb,
header_len = tvb_get_guint8(tvb, 1) * 4;
body_len = tvb_reported_length(tvb);
if (header_len > body_len) {
body_len = 0; /* malformed packet */
body_len = 0; /* malformed packet */
} else {
body_len = body_len - header_len;
body_len = body_len - header_len;
}
packet_flags = tvb_get_guint8(tvb, 2);
packet_errors = tvb_get_guint8(tvb, 3);
@ -132,99 +132,99 @@ static void dissect_kdp(tvbuff_t *tvb,
proto_tree_add_item(kdp_tree, hf_kdp_errors, tvb, 3, 1, ENC_BIG_ENDIAN);
if (header_len > 4) {
offset = 4;
if (packet_flags & KDP_ACK_FLAG) {
proto_tree_add_item(kdp_tree, hf_kdp_destflowid, tvb, offset, 4, ENC_BIG_ENDIAN);
offset = offset + 4;
}
offset = 4;
if (packet_flags & KDP_ACK_FLAG) {
proto_tree_add_item(kdp_tree, hf_kdp_destflowid, tvb, offset, 4, ENC_BIG_ENDIAN);
offset = offset + 4;
}
if (packet_flags & (KDP_SYN_FLAG | KDP_BCST_FLAG)) {
proto_tree_add_item(kdp_tree, hf_kdp_srcflowid, tvb, offset, 4, ENC_BIG_ENDIAN);
src_flowid = tvb_get_ntohl(tvb, offset);
offset = offset + 4;
}
if (packet_flags & (KDP_SYN_FLAG | KDP_BCST_FLAG)) {
proto_tree_add_item(kdp_tree, hf_kdp_srcflowid, tvb, offset, 4, ENC_BIG_ENDIAN);
src_flowid = tvb_get_ntohl(tvb, offset);
offset = offset + 4;
}
proto_tree_add_item(kdp_tree, hf_kdp_sequence, tvb, offset, 4, ENC_BIG_ENDIAN);
sequence_number = tvb_get_ntohl(tvb, offset);
offset = offset + 4;
proto_tree_add_item(kdp_tree, hf_kdp_sequence, tvb, offset, 4, ENC_BIG_ENDIAN);
sequence_number = tvb_get_ntohl(tvb, offset);
offset = offset + 4;
if (packet_flags & KDP_ACK_FLAG) {
proto_tree_add_item(kdp_tree, hf_kdp_ack, tvb, offset, 4, ENC_BIG_ENDIAN);
ack_number = tvb_get_ntohl(tvb, offset);
offset = offset + 4;
}
if (packet_flags & KDP_SYN_FLAG) {
proto_tree_add_item(kdp_tree, hf_kdp_maxsegmentsize, tvb, offset, 4, ENC_BIG_ENDIAN);
offset = offset + 4;
}
if (packet_flags & KDP_ACK_FLAG) {
proto_tree_add_item(kdp_tree, hf_kdp_ack, tvb, offset, 4, ENC_BIG_ENDIAN);
ack_number = tvb_get_ntohl(tvb, offset);
offset = offset + 4;
}
if (packet_flags & KDP_SYN_FLAG) {
proto_tree_add_item(kdp_tree, hf_kdp_maxsegmentsize, tvb, offset, 4, ENC_BIG_ENDIAN);
offset = offset + 4;
}
while (offset < ((body_len > 0) ? header_len - 4 : header_len)) {
guint8 option_number;
guint8 option_len = 0;
while (offset < ((body_len > 0) ? header_len - 4 : header_len)) {
guint8 option_number;
guint8 option_len = 0;
option_number = tvb_get_guint8(tvb, offset);
option_number = tvb_get_guint8(tvb, offset);
proto_tree_add_item(kdp_tree, hf_kdp_optionnumber, tvb, offset, 1, ENC_BIG_ENDIAN);
offset = offset + 1;
if (option_number > 0) {
option_len = tvb_get_guint8(tvb, offset);
proto_tree_add_item(kdp_tree, hf_kdp_optionlen, tvb, offset, 1, ENC_BIG_ENDIAN);
offset = offset + 1;
}
proto_tree_add_item(kdp_tree, hf_kdp_optionnumber, tvb, offset, 1, ENC_BIG_ENDIAN);
offset = offset + 1;
if (option_number > 0) {
option_len = tvb_get_guint8(tvb, offset);
proto_tree_add_item(kdp_tree, hf_kdp_optionlen, tvb, offset, 1, ENC_BIG_ENDIAN);
offset = offset + 1;
}
switch (option_number) {
case 0:
break;
case 1:
proto_tree_add_item(kdp_tree, hf_kdp_option1, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset + 2;
break;
case 2:
proto_tree_add_item(kdp_tree, hf_kdp_option2, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset + 2;
break;
case 3:
proto_tree_add_item(kdp_tree, hf_kdp_option3, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset + 2;
break;
case 4:
proto_tree_add_item(kdp_tree, hf_kdp_option4, tvb, offset, 0, ENC_NA);
break;
case 5:
proto_tree_add_item(kdp_tree, hf_kdp_option5, tvb, offset, 0, ENC_NA);
break;
case 6:
proto_tree_add_item(kdp_tree, hf_kdp_option6, tvb, offset, option_len - 2, ENC_NA);
offset = offset + option_len - 2;
break;
case 7:
proto_tree_add_item(kdp_tree, hf_kdp_option7, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset + 2;
break;
case 8:
proto_tree_add_item(kdp_tree, hf_kdp_option8, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset + 2;
break;
case 9:
proto_tree_add_item(kdp_tree, hf_kdp_option9, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset + 2;
break;
default:
proto_tree_add_item(kdp_tree, hf_kdp_option_unknown, tvb, offset, option_len - 2, ENC_NA);
offset = offset + option_len - 2;
break;
}
}
switch (option_number) {
case 0:
break;
case 1:
proto_tree_add_item(kdp_tree, hf_kdp_option1, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset + 2;
break;
case 2:
proto_tree_add_item(kdp_tree, hf_kdp_option2, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset + 2;
break;
case 3:
proto_tree_add_item(kdp_tree, hf_kdp_option3, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset + 2;
break;
case 4:
proto_tree_add_item(kdp_tree, hf_kdp_option4, tvb, offset, 0, ENC_NA);
break;
case 5:
proto_tree_add_item(kdp_tree, hf_kdp_option5, tvb, offset, 0, ENC_NA);
break;
case 6:
proto_tree_add_item(kdp_tree, hf_kdp_option6, tvb, offset, option_len - 2, ENC_NA);
offset = offset + option_len - 2;
break;
case 7:
proto_tree_add_item(kdp_tree, hf_kdp_option7, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset + 2;
break;
case 8:
proto_tree_add_item(kdp_tree, hf_kdp_option8, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset + 2;
break;
case 9:
proto_tree_add_item(kdp_tree, hf_kdp_option9, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset + 2;
break;
default:
proto_tree_add_item(kdp_tree, hf_kdp_option_unknown, tvb, offset, option_len - 2, ENC_NA);
offset = offset + option_len - 2;
break;
}
}
if (body_len > 0) {
proto_tree_add_item(kdp_tree, hf_kdp_fragment, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset + 2;
if (body_len > 0) {
proto_tree_add_item(kdp_tree, hf_kdp_fragment, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset + 2;
proto_tree_add_item(kdp_tree, hf_kdp_fragtotal, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset + 2;
proto_tree_add_item(kdp_tree, hf_kdp_fragtotal, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset + 2;
proto_tree_add_item(kdp_tree, hf_kdp_body, tvb, offset, -1, ENC_NA);
}
proto_tree_add_item(kdp_tree, hf_kdp_body, tvb, offset, -1, ENC_NA);
}
}
}
}
@ -238,30 +238,30 @@ static void dissect_kdp(tvbuff_t *tvb,
char src_flowid_string[BUFFER_SIZE];
if (packet_flags & KDP_ACK_FLAG) {
g_snprintf(ack_string, sizeof(ack_string), "ACK=%x ", ack_number);
g_snprintf(ack_string, sizeof(ack_string), "ACK=%x ", ack_number);
} else {
ack_string[0] = '\0';
ack_string[0] = '\0';
}
if (header_len > 4) {
g_snprintf(seq_num_string, sizeof(seq_num_string), "SEQ=%x ", sequence_number);
g_snprintf(seq_num_string, sizeof(seq_num_string), "SEQ=%x ", sequence_number);
} else {
seq_num_string[0] = '\0';
seq_num_string[0] = '\0';
}
if (packet_flags & (KDP_SYN_FLAG | KDP_BCST_FLAG)) {
g_snprintf(src_flowid_string, sizeof(src_flowid_string), "SRC_FLOWID=%x ", src_flowid);
g_snprintf(src_flowid_string, sizeof(src_flowid_string), "SRC_FLOWID=%x ", src_flowid);
} else {
src_flowid_string[0] = '\0';
src_flowid_string[0] = '\0';
}
col_add_fstr(pinfo->cinfo, COL_INFO, "%s%s%s%s%s%s%s%serrors=%d",
((packet_flags & KDP_DROP_FLAG) ? "DROP " : ""),
((packet_flags & KDP_SYN_FLAG) ? "SYN " : ""),
((packet_flags & KDP_RST_FLAG) ? "RST " : ""),
((packet_flags & KDP_BCST_FLAG) ? "BCST " : ""),
((packet_flags & KDP_DUP_FLAG) ? "DUP " : ""),
ack_string,
seq_num_string,
src_flowid_string,
packet_errors);
((packet_flags & KDP_DROP_FLAG) ? "DROP " : ""),
((packet_flags & KDP_SYN_FLAG) ? "SYN " : ""),
((packet_flags & KDP_RST_FLAG) ? "RST " : ""),
((packet_flags & KDP_BCST_FLAG) ? "BCST " : ""),
((packet_flags & KDP_DUP_FLAG) ? "DUP " : ""),
ack_string,
seq_num_string,
src_flowid_string,
packet_errors);
}
}
@ -310,87 +310,87 @@ void proto_register_kdp(void) {
},
{ &hf_kdp_destflowid,
{ "DestFlowID", "kdp.destflowid",
FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}
FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_srcflowid,
{ "SrcFlowID", "kdp.srcflowid",
FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}
FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_sequence,
{ "Sequence", "kdp.sequence",
FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}
FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_ack,
{ "Ack", "kdp.ack",
FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}
FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_maxsegmentsize,
{ "MaxSegmentSize", "kdp.maxsegmentsize",
FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}
FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_optionnumber,
{ "Option Number", "kdp.optionnumber",
FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL}
FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_optionlen,
{ "Option Len", "kdp.option",
FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL}
FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_option1,
{ "Option1 - Max Window", "kdp.option1",
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL}
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_option2,
{ "Option2 - TCP Fraction", "kdp.option2",
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL}
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_option3,
{ "Option3 - KDP Version", "kdp.option3",
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL}
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_option4,
{ "Option4 - Enable Reliable", "kdp.option4",
FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL}
FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_option5,
{ "Option5 - Disable Reliable", "kdp.option5",
FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL}
FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_option6,
{ "Option6 - SACK", "kdp.option6",
FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL}
FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_option7,
{ "Option7 - COS", "kdp.option7",
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL}
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_option8,
{ "Option8 - BWMIN", "kdp.option8",
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL}
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_option9,
{ "Option9 - INT", "kdp.option9",
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL}
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_option_unknown,
{ "Unknown option", "kdp.option_unknown",
FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL}
FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_fragment,
{ "Fragment", "kdp.fragment",
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL}
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_fragtotal,
{ "FragTotal", "kdp.fragtotal",
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL}
FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_body,
{ "Encrypted Body", "kdp.body",
FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL}
FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL}
},
{ &hf_kdp_xml_body,
{ "XML Body", "kdp.xml_body",
FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL}
FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL}
}
};
@ -400,8 +400,8 @@ void proto_register_kdp(void) {
};
proto_kdp = proto_register_protocol("Kontiki Delivery Protocol", /* name */
"KDP", /* short name */
"kdp"); /* abbrev */
"KDP", /* short name */
"kdp"); /* abbrev */
proto_register_field_array(proto_kdp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
}
@ -413,3 +413,15 @@ proto_reg_handoff_kdp(void) {
dissector_add_uint("udp.port", KDP_PORT, kdp_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local Variables:
* c-basic-offset: 2
* tab-width: 8
* indent-tabs-mode: nil
* End:
*
* ex: set shiftwidth=2 tabstop=8 expandtab:
* :indentSize=2:tabSize=8:noTabs=true:
*/

View File

@ -116,25 +116,25 @@ static gboolean reassemble_lapdm = TRUE;
/*
* Bits in the address field.
*/
#define LAPDM_SAPI 0x1c /* Service Access Point Identifier */
#define LAPDM_SAPI_SHIFT 2
#define LAPDM_CR 0x02 /* Command/Response bit */
#define LAPDM_EA 0x01 /* First Address Extension bit */
#define LAPDM_LPD 0x60 /* Link Protocol Discriminator */
#define LAPDM_SAPI 0x1c /* Service Access Point Identifier */
#define LAPDM_SAPI_SHIFT 2
#define LAPDM_CR 0x02 /* Command/Response bit */
#define LAPDM_EA 0x01 /* First Address Extension bit */
#define LAPDM_LPD 0x60 /* Link Protocol Discriminator */
/*
* Bits in the length field.
*/
#define LAPDM_EL 0x01 /* Extended Length = 1 */
#define LAPDM_M 0x02 /* More fragments */
#define LAPDM_M_SHIFT 1
#define LAPDM_LEN 0xfc /* Length */
#define LAPDM_LEN_SHIFT 2
#define LAPDM_EL 0x01 /* Extended Length = 1 */
#define LAPDM_M 0x02 /* More fragments */
#define LAPDM_M_SHIFT 1
#define LAPDM_LEN 0xfc /* Length */
#define LAPDM_LEN_SHIFT 2
#define LAPDM_HEADER_LEN 3
#define LAPDM_SAPI_RR_CC_MM 0
#define LAPDM_SAPI_SMS 3
#define LAPDM_SAPI_RR_CC_MM 0
#define LAPDM_SAPI_SMS 3
/* Used only for U frames */
static const xdlc_cf_items lapdm_cf_items = {
@ -150,33 +150,33 @@ static const xdlc_cf_items lapdm_cf_items = {
};
static const value_string lapdm_ea_vals[] = {
{ 0, "More octets" },
{ 1, "Final octet" },
{ 0, NULL }
{ 0, "More octets" },
{ 1, "Final octet" },
{ 0, NULL }
};
static const value_string lapdm_sapi_vals[] = {
{ LAPDM_SAPI_RR_CC_MM, "RR/MM/CC" },
{ LAPDM_SAPI_SMS, "SMS/SS" },
{ 0, NULL }
{ LAPDM_SAPI_RR_CC_MM, "RR/MM/CC" },
{ LAPDM_SAPI_SMS, "SMS/SS" },
{ 0, NULL }
};
static const value_string lapdm_lpd_vals[] = {
{ 0, "Normal GSM" },
{ 1, "Cell broadcast service" },
{ 0, NULL }
{ 0, "Normal GSM" },
{ 1, "Cell broadcast service" },
{ 0, NULL }
};
static const value_string lapdm_m_vals[] = {
{ 0, "Last segment" },
{ 1, "More segments" },
{ 0, NULL }
{ 0, "Last segment" },
{ 1, "More segments" },
{ 0, NULL }
};
static const value_string lapdm_el_vals[] = {
{ 0, "More octets" },
{ 1, "Final octet" },
{ 0, NULL }
{ 0, "More octets" },
{ 1, "Final octet" },
{ 0, NULL }
};
@ -258,12 +258,12 @@ dissect_lapdm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
control = dissect_xdlc_control(tvb, 1, pinfo, lapdm_tree, hf_lapdm_control,
ett_lapdm_control, &lapdm_cf_items, NULL /* LAPDm doesn't support extended */, NULL, NULL,
is_response, FALSE, FALSE);
ett_lapdm_control, &lapdm_cf_items, NULL /* LAPDm doesn't support extended */, NULL, NULL,
is_response, FALSE, FALSE);
if (tree) {
length_ti = proto_tree_add_uint(lapdm_tree, hf_lapdm_length, tvb,
2, 1, length);
2, 1, length);
length_tree = proto_item_add_subtree(length_ti, ett_lapdm_length);
proto_tree_add_uint(length_tree, hf_lapdm_len, tvb, 2, 1, length);
@ -288,55 +288,55 @@ dissect_lapdm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
*/
if( (control & XDLC_I_MASK) == XDLC_I && reassemble_lapdm )
{
fragment_head *fd_m = NULL;
tvbuff_t *reassembled = NULL;
guint32 fragment_id;
gboolean save_fragmented = pinfo->fragmented;
fragment_head *fd_m = NULL;
tvbuff_t *reassembled = NULL;
guint32 fragment_id;
gboolean save_fragmented = pinfo->fragmented;
pinfo->fragmented = m;
pinfo->fragmented = m;
/* Rely on caller to provide a way to group fragments */
fragment_id = (pinfo->circuit_id << 4) | (sapi << 1) | pinfo->p2p_dir;
/* Rely on caller to provide a way to group fragments */
fragment_id = (pinfo->circuit_id << 4) | (sapi << 1) | pinfo->p2p_dir;
/* This doesn't seem the best way of doing it as doesn't
take N(S) into account, but N(S) isn't always 0 for
the first fragment!
*/
fd_m = fragment_add_seq_next (&lapdm_reassembly_table, payload, 0,
pinfo,
fragment_id, /* guint32 ID for fragments belonging together */
NULL,
/*n_s guint32 fragment sequence number */
len, /* guint32 fragment length */
m); /* More fragments? */
/* This doesn't seem the best way of doing it as doesn't
take N(S) into account, but N(S) isn't always 0 for
the first fragment!
*/
fd_m = fragment_add_seq_next (&lapdm_reassembly_table, payload, 0,
pinfo,
fragment_id, /* guint32 ID for fragments belonging together */
NULL,
/*n_s guint32 fragment sequence number */
len, /* guint32 fragment length */
m); /* More fragments? */
reassembled = process_reassembled_data(payload, 0, pinfo,
"Reassembled LAPDm", fd_m, &lapdm_frag_items,
NULL, lapdm_tree);
reassembled = process_reassembled_data(payload, 0, pinfo,
"Reassembled LAPDm", fd_m, &lapdm_frag_items,
NULL, lapdm_tree);
/* Reassembled into this packet
*/
if (fd_m && pinfo->fd->num == fd_m->reassembled_in) {
if (!dissector_try_uint(lapdm_sapi_dissector_table, sapi,
reassembled, pinfo, tree))
call_dissector(data_handle, reassembled, pinfo, tree);
}
else {
col_append_str(pinfo->cinfo, COL_INFO, " (Fragment)");
proto_tree_add_item(lapdm_tree, hf_lapdm_fragment_data, payload, 0, -1, ENC_NA);
}
/* Reassembled into this packet
*/
if (fd_m && pinfo->fd->num == fd_m->reassembled_in) {
if (!dissector_try_uint(lapdm_sapi_dissector_table, sapi,
reassembled, pinfo, tree))
call_dissector(data_handle, reassembled, pinfo, tree);
}
else {
col_append_str(pinfo->cinfo, COL_INFO, " (Fragment)");
proto_tree_add_item(lapdm_tree, hf_lapdm_fragment_data, payload, 0, -1, ENC_NA);
}
/* Now reset fragmentation information in pinfo
*/
pinfo->fragmented = save_fragmented;
/* Now reset fragmentation information in pinfo
*/
pinfo->fragmented = save_fragmented;
}
else
{
/* Whole packet
If we have some data, try and dissect it (only happens for UI, SABM, UA or I frames)
*/
*/
if (!dissector_try_uint(lapdm_sapi_dissector_table, sapi,
payload, pinfo, tree))
payload, pinfo, tree))
call_dissector(data_handle,payload, pinfo, tree);
}
}
@ -347,126 +347,126 @@ proto_register_lapdm(void)
static hf_register_info hf[] = {
{ &hf_lapdm_address,
{ "Address Field", "lapdm.address_field", FT_UINT8, BASE_HEX, NULL, 0x0,
"Address", HFILL }},
{ "Address Field", "lapdm.address_field", FT_UINT8, BASE_HEX, NULL, 0x0,
"Address", HFILL }},
{ &hf_lapdm_ea,
{ "EA", "lapdm.ea", FT_UINT8, BASE_DEC, VALS(lapdm_ea_vals), LAPDM_EA,
"Address field extension bit", HFILL }},
{ "EA", "lapdm.ea", FT_UINT8, BASE_DEC, VALS(lapdm_ea_vals), LAPDM_EA,
"Address field extension bit", HFILL }},
{ &hf_lapdm_cr,
{ "C/R", "lapdm.cr", FT_UINT8, BASE_DEC, NULL, LAPDM_CR,
"Command/response field bit", HFILL }},
{ "C/R", "lapdm.cr", FT_UINT8, BASE_DEC, NULL, LAPDM_CR,
"Command/response field bit", HFILL }},
{ &hf_lapdm_lpd,
{ "LPD", "lapdm.lpd", FT_UINT8, BASE_DEC, VALS(lapdm_lpd_vals), LAPDM_LPD,
"Link Protocol Discriminator", HFILL }},
{ "LPD", "lapdm.lpd", FT_UINT8, BASE_DEC, VALS(lapdm_lpd_vals), LAPDM_LPD,
"Link Protocol Discriminator", HFILL }},
{ &hf_lapdm_sapi,
{ "SAPI", "lapdm.sapi", FT_UINT8, BASE_DEC, VALS(lapdm_sapi_vals), LAPDM_SAPI,
"Service access point identifier", HFILL }},
{ "SAPI", "lapdm.sapi", FT_UINT8, BASE_DEC, VALS(lapdm_sapi_vals), LAPDM_SAPI,
"Service access point identifier", HFILL }},
{ &hf_lapdm_control,
{ "Control Field", "lapdm.control_field", FT_UINT8, BASE_HEX, NULL, 0x0,
NULL, HFILL }},
{ "Control Field", "lapdm.control_field", FT_UINT8, BASE_HEX, NULL, 0x0,
NULL, HFILL }},
{ &hf_lapdm_n_r,
{ "N(R)", "lapdm.control.n_r", FT_UINT8, BASE_DEC,
NULL, XDLC_N_R_MASK, NULL, HFILL }},
{ "N(R)", "lapdm.control.n_r", FT_UINT8, BASE_DEC,
NULL, XDLC_N_R_MASK, NULL, HFILL }},
{ &hf_lapdm_n_s,
{ "N(S)", "lapdm.control.n_s", FT_UINT8, BASE_DEC,
NULL, XDLC_N_S_MASK, NULL, HFILL }},
{ "N(S)", "lapdm.control.n_s", FT_UINT8, BASE_DEC,
NULL, XDLC_N_S_MASK, NULL, HFILL }},
{ &hf_lapdm_p,
{ "Poll", "lapdm.control.p", FT_BOOLEAN, 8,
TFS(&tfs_true_false), XDLC_P_F, NULL, HFILL }},
{ "Poll", "lapdm.control.p", FT_BOOLEAN, 8,
TFS(&tfs_true_false), XDLC_P_F, NULL, HFILL }},
{ &hf_lapdm_f,
{ "Final", "lapdm.control.f", FT_BOOLEAN, 8,
TFS(&tfs_true_false), XDLC_P_F, NULL, HFILL }},
{ "Final", "lapdm.control.f", FT_BOOLEAN, 8,
TFS(&tfs_true_false), XDLC_P_F, NULL, HFILL }},
{ &hf_lapdm_s_ftype,
{ "Supervisory frame type", "lapdm.control.s_ftype", FT_UINT8, BASE_HEX,
VALS(stype_vals), XDLC_S_FTYPE_MASK, NULL, HFILL }},
{ "Supervisory frame type", "lapdm.control.s_ftype", FT_UINT8, BASE_HEX,
VALS(stype_vals), XDLC_S_FTYPE_MASK, NULL, HFILL }},
{ &hf_lapdm_u_modifier_cmd,
{ "Command", "lapdm.control.u_modifier_cmd", FT_UINT8, BASE_HEX,
VALS(modifier_vals_cmd), XDLC_U_MODIFIER_MASK, NULL, HFILL }},
{ "Command", "lapdm.control.u_modifier_cmd", FT_UINT8, BASE_HEX,
VALS(modifier_vals_cmd), XDLC_U_MODIFIER_MASK, NULL, HFILL }},
{ &hf_lapdm_u_modifier_resp,
{ "Response", "lapdm.control.u_modifier_resp", FT_UINT8, BASE_HEX,
VALS(modifier_vals_resp), XDLC_U_MODIFIER_MASK, NULL, HFILL }},
{ "Response", "lapdm.control.u_modifier_resp", FT_UINT8, BASE_HEX,
VALS(modifier_vals_resp), XDLC_U_MODIFIER_MASK, NULL, HFILL }},
{ &hf_lapdm_ftype_i,
{ "Frame type", "lapdm.control.ftype", FT_UINT8, BASE_HEX,
VALS(ftype_vals), XDLC_I_MASK, NULL, HFILL }},
{ "Frame type", "lapdm.control.ftype", FT_UINT8, BASE_HEX,
VALS(ftype_vals), XDLC_I_MASK, NULL, HFILL }},
{ &hf_lapdm_ftype_s_u,
{ "Frame type", "lapdm.control.ftype", FT_UINT8, BASE_HEX,
VALS(ftype_vals), XDLC_S_U_MASK, NULL, HFILL }},
{ "Frame type", "lapdm.control.ftype", FT_UINT8, BASE_HEX,
VALS(ftype_vals), XDLC_S_U_MASK, NULL, HFILL }},
{ &hf_lapdm_length,
{ "Length Field", "lapdm.length_field", FT_UINT8, BASE_HEX,
NULL, 0x0, NULL, HFILL }},
{ "Length Field", "lapdm.length_field", FT_UINT8, BASE_HEX,
NULL, 0x0, NULL, HFILL }},
{ &hf_lapdm_el,
{ "EL", "lapdm.el", FT_UINT8, BASE_DEC,
VALS(lapdm_el_vals), LAPDM_EL, "Length indicator field extension bit", HFILL }},
{ "EL", "lapdm.el", FT_UINT8, BASE_DEC,
VALS(lapdm_el_vals), LAPDM_EL, "Length indicator field extension bit", HFILL }},
{ &hf_lapdm_m,
{ "M", "lapdm.m", FT_UINT8, BASE_DEC,
VALS(lapdm_m_vals), LAPDM_M, "More data bit", HFILL }},
{ "M", "lapdm.m", FT_UINT8, BASE_DEC,
VALS(lapdm_m_vals), LAPDM_M, "More data bit", HFILL }},
{ &hf_lapdm_len,
{ "Length", "lapdm.length", FT_UINT8, BASE_DEC,
NULL, LAPDM_LEN, "Length indicator", HFILL }},
{ "Length", "lapdm.length", FT_UINT8, BASE_DEC,
NULL, LAPDM_LEN, "Length indicator", HFILL }},
/* Fragment reassembly
*/
/* Fragment reassembly
*/
{ &hf_lapdm_fragment_data,
{ "Fragment Data", "lapdm.fragment_data", FT_NONE, BASE_NONE,
NULL, 0x00, NULL, HFILL }},
{ "Fragment Data", "lapdm.fragment_data", FT_NONE, BASE_NONE,
NULL, 0x00, NULL, HFILL }},
{ &hf_lapdm_fragments,
{ "Message fragments", "lapdm.fragments", FT_NONE, BASE_NONE,
NULL, 0x00, "LAPDm Message fragments", HFILL }},
{ "Message fragments", "lapdm.fragments", FT_NONE, BASE_NONE,
NULL, 0x00, "LAPDm Message fragments", HFILL }},
{ &hf_lapdm_fragment,
{ "Message fragment", "lapdm.fragment", FT_FRAMENUM, BASE_NONE,
NULL, 0x00, "LAPDm Message fragment", HFILL }},
{ "Message fragment", "lapdm.fragment", FT_FRAMENUM, BASE_NONE,
NULL, 0x00, "LAPDm Message fragment", HFILL }},
{ &hf_lapdm_fragment_overlap,
{ "Message fragment overlap", "lapdm.fragment.overlap", FT_BOOLEAN, BASE_NONE,
NULL, 0x0, "LAPDm Message fragment overlaps with other fragment(s)", HFILL }},
{ "Message fragment overlap", "lapdm.fragment.overlap", FT_BOOLEAN, BASE_NONE,
NULL, 0x0, "LAPDm Message fragment overlaps with other fragment(s)", HFILL }},
{ &hf_lapdm_fragment_overlap_conflicts,
{ "Message fragment overlapping with conflicting data", "lapdm.fragment.overlap.conflicts", FT_BOOLEAN, BASE_NONE,
NULL, 0x0, "LAPDm Message fragment overlaps with conflicting data", HFILL }},
{ "Message fragment overlapping with conflicting data", "lapdm.fragment.overlap.conflicts", FT_BOOLEAN, BASE_NONE,
NULL, 0x0, "LAPDm Message fragment overlaps with conflicting data", HFILL }},
{ &hf_lapdm_fragment_multiple_tails,
{ "Message has multiple tail fragments", "lapdm.fragment.multiple_tails", FT_BOOLEAN, BASE_NONE,
NULL, 0x0, "LAPDm Message fragment has multiple tail fragments", HFILL }},
{ "Message has multiple tail fragments", "lapdm.fragment.multiple_tails", FT_BOOLEAN, BASE_NONE,
NULL, 0x0, "LAPDm Message fragment has multiple tail fragments", HFILL }},
{ &hf_lapdm_fragment_too_long_fragment,
{ "Message fragment too long", "lapdm.fragment.too_long_fragment", FT_BOOLEAN, BASE_NONE,
NULL, 0x0, "LAPDm Message fragment data goes beyond the packet end", HFILL }},
{ "Message fragment too long", "lapdm.fragment.too_long_fragment", FT_BOOLEAN, BASE_NONE,
NULL, 0x0, "LAPDm Message fragment data goes beyond the packet end", HFILL }},
{ &hf_lapdm_fragment_error,
{ "Message defragmentation error", "lapdm.fragment.error", FT_FRAMENUM, BASE_NONE,
NULL, 0x00, "LAPDm Message defragmentation error due to illegal fragments", HFILL }},
{ "Message defragmentation error", "lapdm.fragment.error", FT_FRAMENUM, BASE_NONE,
NULL, 0x00, "LAPDm Message defragmentation error due to illegal fragments", HFILL }},
{ &hf_lapdm_fragment_count,
{ "Message fragment count", "lapdm.fragment.count", FT_UINT32, BASE_DEC,
NULL, 0x00, NULL, HFILL }},
{ "Message fragment count", "lapdm.fragment.count", FT_UINT32, BASE_DEC,
NULL, 0x00, NULL, HFILL }},
{ &hf_lapdm_reassembled_in,
{ "Reassembled in", "lapdm.reassembled.in", FT_FRAMENUM, BASE_NONE,
NULL, 0x00, "LAPDm Message has been reassembled in this packet.", HFILL }},
{ "Reassembled in", "lapdm.reassembled.in", FT_FRAMENUM, BASE_NONE,
NULL, 0x00, "LAPDm Message has been reassembled in this packet.", HFILL }},
{ &hf_lapdm_reassembled_length,
{ "Reassembled LAPDm length", "lapdm.reassembled.length", FT_UINT32, BASE_DEC,
NULL, 0x00, "The total length of the reassembled payload", HFILL }}
{ "Reassembled LAPDm length", "lapdm.reassembled.length", FT_UINT32, BASE_DEC,
NULL, 0x00, "The total length of the reassembled payload", HFILL }}
};
static gint *ett[] = {
@ -490,9 +490,9 @@ proto_register_lapdm(void)
lapdm_module = prefs_register_protocol(proto_lapdm, NULL);
prefs_register_bool_preference(lapdm_module, "reassemble",
"Reassemble fragmented LAPDm packets",
"Whether the dissector should defragment LAPDm messages spanning multiple packets.",
&reassemble_lapdm);
"Reassemble fragmented LAPDm packets",
"Whether the dissector should defragment LAPDm messages spanning multiple packets.",
&reassemble_lapdm);
register_init_routine (lapdm_defragment_init);
}
@ -502,3 +502,15 @@ proto_reg_handoff_lapdm(void)
data_handle = find_dissector("data");
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 4
* tab-width: 8
* indent-tabs-mode: nil
* End:
*
* vi: set shiftwidth=4 tabstop=8 expandtab:
* :indentSize=4:tabSize=8:noTabs=true:
*/

View File

@ -247,3 +247,15 @@ proto_reg_handoff_laplink(void)
dissector_add_uint("udp.port", UDP_PORT_LAPLINK, laplink_udp_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -198,4 +198,15 @@ proto_register_lge_monitor(void)
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -288,7 +288,7 @@ dissect_eth_frame(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mint_tree,
tvbuff_t *eth_tvb;
#ifdef MINT_DEVELOPMENT
col_set_writable(pinfo->cinfo, FALSE);
col_set_writable(pinfo->cinfo, FALSE);
#endif
eth_tvb = tvb_new_subset_length(tvb, offset, length);
@ -301,7 +301,7 @@ dissect_eth_frame(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mint_tree,
offset += length;
#ifdef MINT_DEVELOPMENT
col_set_writable(pinfo->cinfo, TRUE);
col_set_writable(pinfo->cinfo, TRUE);
#endif
return offset;
}
@ -357,7 +357,7 @@ dissect_mint_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 2;
/* FIXME: This is probably not the right way to determine the packet type.
* It's more likely something in mint_header_unknown1 but I haven't
* found out what. */
* found out what. */
switch(packet_type) {
case MINT_TYPE_DATA_UC:
ti = proto_tree_add_item(mint_tree, &hfi_mint_data, tvb,
@ -391,7 +391,7 @@ dissect_mint_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += dissect_eth_frame(tvb, pinfo, tree,
offset, packet_length - offset);
break;
case MINT_TYPE_CTRL_0x0c:
case MINT_TYPE_CTRL_0x0c:
ti = proto_tree_add_item(mint_tree, &hfi_mint_control, tvb,
offset, packet_length - 16, ENC_NA);
mint_ctrl_tree = proto_item_add_subtree(ti, ett_mint_ctrl);
@ -479,7 +479,7 @@ dissect_mint_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
}
break;
case MINT_TYPE_CTRL_0x1e:
case MINT_TYPE_CTRL_0x1e:
ti = proto_tree_add_item(mint_tree, &hfi_mint_control, tvb,
offset, packet_length - 16, ENC_NA);
mint_ctrl_tree = proto_item_add_subtree(ti, ett_mint_ctrl);
@ -491,7 +491,7 @@ dissect_mint_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset, bytes_remaining, ENC_NA);
offset += bytes_remaining;
break;
case MINT_TYPE_ETH_0x22:
case MINT_TYPE_ETH_0x22:
ti = proto_tree_add_item(mint_tree, &hfi_mint_control, tvb,
offset, packet_length - 16, ENC_NA);
mint_ctrl_tree = proto_item_add_subtree(ti, ett_mint_ctrl);
@ -753,3 +753,15 @@ proto_reg_handoff_mint(void)
eth_handle = find_dissector("eth_withoutfcs");
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -1065,3 +1065,15 @@ proto_reg_handoff_mp4ves(void)
}
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -322,3 +322,15 @@ proto_register_msnip(void)
proto_register_subtree_array(ett, array_length(ett));
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

File diff suppressed because it is too large Load Diff

View File

@ -48,7 +48,6 @@ static gint ett_nb_rtpmux_cmp_rtp_hdr = -1;
static dissector_handle_t rtpdissector;
/* Code to actually dissect the packets */
static int
dissect_nb_rtpmux(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@ -99,8 +98,8 @@ dissect_nb_rtpmux(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
guint16 dstport, srcport;
unsigned int length;
gint captured_length;
tvbuff_t* next_tvb;
gboolean tbit;
tvbuff_t *next_tvb;
gboolean tbit;
length = tvb_get_guint8(tvb, offset+2);
ti = proto_tree_add_item(tree, proto_nb_rtpmux, tvb, offset, length+5, ENC_NA);
@ -108,54 +107,54 @@ dissect_nb_rtpmux(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
/* XXX - what if the T bit is set? */
proto_tree_add_item(nb_rtpmux_tree, hf_nb_rtpmux_compressed, tvb, offset, 2, ENC_BIG_ENDIAN);
tbit = tvb_get_guint8(tvb,offset)>>7;
if(tbit == 1){
/* 6.4.2.4 Transport Format for multiplexing with RTP header compression */
dstport = (tvb_get_ntohs(tvb, offset) & 0x7fff) << 1;
proto_tree_add_uint(nb_rtpmux_tree, hf_nb_rtpmux_dstport, tvb, offset, 2, dstport );
proto_tree_add_item(nb_rtpmux_tree, hf_nb_rtpmux_length, tvb, offset+2, 1, ENC_BIG_ENDIAN);
tbit = tvb_get_guint8(tvb,offset)>>7;
if(tbit == 1){
/* 6.4.2.4 Transport Format for multiplexing with RTP header compression */
dstport = (tvb_get_ntohs(tvb, offset) & 0x7fff) << 1;
proto_tree_add_uint(nb_rtpmux_tree, hf_nb_rtpmux_dstport, tvb, offset, 2, dstport );
proto_tree_add_item(nb_rtpmux_tree, hf_nb_rtpmux_length, tvb, offset+2, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(nb_rtpmux_tree, hf_nb_r_bit, tvb, offset+3, 2, ENC_BIG_ENDIAN);
srcport = (tvb_get_ntohs(tvb, offset+3) & 0x7fff) << 1;
proto_tree_add_uint(nb_rtpmux_tree, hf_nb_rtpmux_srcport, tvb, offset+3, 2, srcport );
nb_rtpmux_cmp_rtp_tree = proto_tree_add_subtree( nb_rtpmux_tree, tvb, offset+5, 3, ett_nb_rtpmux_cmp_rtp_hdr, NULL, "Compressed RTP header" );
/* Sequence Number (SN) */
proto_tree_add_item(nb_rtpmux_cmp_rtp_tree, hf_nb_rtpmux_cmp_rtp_sequence_no, tvb, offset+5, 1, ENC_BIG_ENDIAN);
/* Timestamp (TS) */
proto_tree_add_item(nb_rtpmux_cmp_rtp_tree, hf_nb_rtpmux_cmp_rtp_timestamp, tvb, offset+6, 2, ENC_BIG_ENDIAN);
if (length != 0)
proto_tree_add_item(nb_rtpmux_cmp_rtp_tree, hf_nb_rtpmux_cmp_rtp_data,tvb, offset+8, length-3, ENC_NA);
srcport = (tvb_get_ntohs(tvb, offset+3) & 0x7fff) << 1;
proto_tree_add_uint(nb_rtpmux_tree, hf_nb_rtpmux_srcport, tvb, offset+3, 2, srcport );
nb_rtpmux_cmp_rtp_tree = proto_tree_add_subtree( nb_rtpmux_tree, tvb, offset+5, 3, ett_nb_rtpmux_cmp_rtp_hdr, NULL, "Compressed RTP header" );
/* Sequence Number (SN) */
proto_tree_add_item(nb_rtpmux_cmp_rtp_tree, hf_nb_rtpmux_cmp_rtp_sequence_no, tvb, offset+5, 1, ENC_BIG_ENDIAN);
/* Timestamp (TS) */
proto_tree_add_item(nb_rtpmux_cmp_rtp_tree, hf_nb_rtpmux_cmp_rtp_timestamp, tvb, offset+6, 2, ENC_BIG_ENDIAN);
if (length != 0)
proto_tree_add_item(nb_rtpmux_cmp_rtp_tree, hf_nb_rtpmux_cmp_rtp_data,tvb, offset+8, length-3, ENC_NA);
}else{
/* 6.4.2.3 Transport Format for multiplexing without RTP Header Compression */
dstport = (tvb_get_ntohs(tvb, offset) & 0x7fff) << 1;
proto_tree_add_uint(nb_rtpmux_tree, hf_nb_rtpmux_dstport, tvb, offset, 2, dstport );
proto_tree_add_item(nb_rtpmux_tree,
hf_nb_rtpmux_length, tvb, offset+2, 1, ENC_BIG_ENDIAN);
}else{
/* 6.4.2.3 Transport Format for multiplexing without RTP Header Compression */
dstport = (tvb_get_ntohs(tvb, offset) & 0x7fff) << 1;
proto_tree_add_uint(nb_rtpmux_tree, hf_nb_rtpmux_dstport, tvb, offset, 2, dstport );
proto_tree_add_item(nb_rtpmux_tree,
hf_nb_rtpmux_length, tvb, offset+2, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(nb_rtpmux_tree, hf_nb_r_bit, tvb, offset+3, 1, ENC_BIG_ENDIAN);
srcport = (tvb_get_ntohs(tvb, offset+3) & 0x7fff) << 1;
proto_tree_add_uint(nb_rtpmux_tree, hf_nb_rtpmux_srcport, tvb, offset+3, 2, srcport );
srcport = (tvb_get_ntohs(tvb, offset+3) & 0x7fff) << 1;
proto_tree_add_uint(nb_rtpmux_tree, hf_nb_rtpmux_srcport, tvb, offset+3, 2, srcport );
if (length != 0)
{
/* We have an RTP payload. */
if (rtpdissector)
{
captured_length = tvb_length_remaining(tvb, offset + 5);
if (captured_length > (gint)length)
captured_length = length;
next_tvb = tvb_new_subset(tvb, offset+5, captured_length,
length);
if (length != 0)
{
/* We have an RTP payload. */
if (rtpdissector)
{
captured_length = tvb_length_remaining(tvb, offset + 5);
if (captured_length > (gint)length)
captured_length = length;
next_tvb = tvb_new_subset(tvb, offset+5, captured_length,
length);
call_dissector(rtpdissector, next_tvb, pinfo, nb_rtpmux_tree);
}
else
{
proto_tree_add_item(nb_rtpmux_tree,
hf_nb_rtpmux_data, tvb, offset+5, length, ENC_NA);
}
}
} /* if tbit */
offset += 5+length;
call_dissector(rtpdissector, next_tvb, pinfo, nb_rtpmux_tree);
}
else
{
proto_tree_add_item(nb_rtpmux_tree,
hf_nb_rtpmux_data, tvb, offset+5, length, ENC_NA);
}
}
} /* if tbit */
offset += 5+length;
}
/* Return the amount of data this dissector was able to dissect */
@ -165,66 +164,63 @@ dissect_nb_rtpmux(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
/* Register the protocol with Wireshark */
/* this format is require because a script is used to build the C function
that calls all the protocol registration.
*/
void
proto_register_nb_rtpmux(void)
{
static hf_register_info hf[] = {
{ &hf_nb_rtpmux_compressed,
{ "Compressed headers(T bit)", "nb_rtpmux.compressed",
FT_BOOLEAN, 16, NULL, 0x8000,
{ "Compressed headers(T bit)", "nb_rtpmux.compressed",
FT_BOOLEAN, 16, NULL, 0x8000,
NULL, HFILL }
},
{ &hf_nb_rtpmux_dstport,
{ "Dst port", "nb_rtpmux.dstport",
FT_UINT16, BASE_DEC, NULL, 0x0,
{ "Dst port", "nb_rtpmux.dstport",
FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
{ &hf_nb_rtpmux_length,
{ "Length", "nb_rtpmux.length",
FT_UINT8, BASE_DEC, NULL, 0x00,
{ "Length", "nb_rtpmux.length",
FT_UINT8, BASE_DEC, NULL, 0x00,
NULL, HFILL }
},
{ &hf_nb_r_bit,
{ "R bit", "nb_rtpmux.r_bit",
FT_BOOLEAN, 16, NULL, 0x8000,
{ "R bit", "nb_rtpmux.r_bit",
FT_BOOLEAN, 16, NULL, 0x8000,
NULL, HFILL }
},
{ &hf_nb_rtpmux_srcport,
{ "Src port", "nb_rtpmux.srcport",
FT_UINT16, BASE_DEC, NULL, 0x0,
{ "Src port", "nb_rtpmux.srcport",
FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
{ &hf_nb_rtpmux_data,
{ "RTP Packet", "nb_rtpmux.data",
FT_BYTES, BASE_NONE, NULL, 0x00,
{ "RTP Packet", "nb_rtpmux.data",
FT_BYTES, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
{ &hf_nb_rtpmux_cmp_rtp_sequence_no,
{ "Sequence Number", "nb_rtpmux.cmp_rtp.sequence_no",
FT_UINT16, BASE_DEC, NULL, 0x00,
{ &hf_nb_rtpmux_cmp_rtp_sequence_no,
{ "Sequence Number", "nb_rtpmux.cmp_rtp.sequence_no",
FT_UINT16, BASE_DEC, NULL, 0x00,
NULL, HFILL }
},
{ &hf_nb_rtpmux_cmp_rtp_timestamp,
{ "Timestamp", "nb_rtpmux.cmp_rtp.timestamp",
FT_UINT16, BASE_DEC, NULL, 0x00,
},
{ &hf_nb_rtpmux_cmp_rtp_timestamp,
{ "Timestamp", "nb_rtpmux.cmp_rtp.timestamp",
FT_UINT16, BASE_DEC, NULL, 0x00,
NULL, HFILL }
},
{ &hf_nb_rtpmux_cmp_rtp_data,
{ "RTP Data", "nb_rtpmux.cmp_rtp.data",
FT_BYTES, BASE_NONE, NULL, 0x00,
},
{ &hf_nb_rtpmux_cmp_rtp_data,
{ "RTP Data", "nb_rtpmux.cmp_rtp.data",
FT_BYTES, BASE_NONE, NULL, 0x00,
NULL,HFILL }
}
}
};
/* Setup protocol subtree array */
static gint *ett[] = {
&ett_nb_rtpmux,
&ett_nb_rtpmux_cmp_rtp_hdr
&ett_nb_rtpmux_cmp_rtp_hdr
};
/* Register the protocol name and description */
@ -237,15 +233,6 @@ proto_register_nb_rtpmux(void)
}
/* If this dissector uses sub-dissector registration add a registration routine.
This exact format is required because a script is used to find these
routines and create the code that calls these routines.
This function is also called by preferences whenever "Apply" is pressed
(see prefs_register_protocol above) so it should accommodate being called
more than once.
*/
void
proto_reg_handoff_nb_rtpmux(void)
{
@ -262,3 +249,15 @@ proto_reg_handoff_nb_rtpmux(void)
rtpdissector = find_dissector("rtp");
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 4
* tab-width: 8
* indent-tabs-mode: nil
* End:
*
* vi: set shiftwidth=4 tabstop=8 expandtab:
* :indentSize=4:tabSize=8:noTabs=true:
*/

View File

@ -225,3 +225,15 @@ void proto_reg_handoff_netdump(void)
dissector_add_uint("udp.port", CurrentPort, netdump_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -646,3 +646,15 @@ proto_reg_handoff_netrom(void)
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -312,7 +312,7 @@ static gint dissect_netsync_cmd_send_data(tvbuff_t *tvb, gint offset, proto_tre
{
proto_tree_add_item(tree, hf_netsync_cmd_send_data_type, tvb,
offset, 1, ENC_BIG_ENDIAN );
offset += 1;
offset += 1;
proto_tree_add_item(tree, hf_netsync_cmd_send_data_id, tvb,
offset, NETSNYC_MERKLE_HASH_LENGTH, ENC_NA );
@ -326,7 +326,7 @@ static gint dissect_netsync_cmd_send_delta(tvbuff_t *tvb, gint offset, proto_tr
{
proto_tree_add_item(tree, hf_netsync_cmd_send_delta_type, tvb,
offset, 1, ENC_BIG_ENDIAN );
offset += 1;
offset += 1;
proto_tree_add_item(tree, hf_netsync_cmd_send_delta_base_id, tvb,
offset, NETSNYC_MERKLE_HASH_LENGTH, ENC_NA );
@ -473,7 +473,7 @@ dissect_netsync_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
proto_tree_add_uint(netsync_tree, hf_netsync_size, tvb,
offset, size_bytes, size );
offset, size_bytes, size );
offset += size_bytes;
switch (cmd) {
@ -762,3 +762,15 @@ proto_reg_handoff_netsync(void)
dissector_add_uint("tcp.port", global_tcp_port_netsync, netsync_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -39,12 +39,12 @@ void proto_register_oicq(void);
void proto_reg_handoff_oicq(void);
/*
Protocol Flag: 8bit unsigned
Sender Flag: 16bit unsigned
Command Number: 16bit unsigned
Sequence Number: 16bit unsigned
OICQ Number: 32bit unsigned
Data: Variable Length data
Protocol Flag: 8bit unsigned
Sender Flag: 16bit unsigned
Command Number: 16bit unsigned
Sequence Number: 16bit unsigned
OICQ Number: 32bit unsigned
Data: Variable Length data
*
*/
@ -121,8 +121,8 @@ dissect_oicq(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
/* Make sure this packet is for us. */
/* heuristic: OICQ iff (([0] == STX) && ([3/4] == <valid_command>) ) */
/* (Supposedly each OICQ message ends with an ETX so a test for */
/* same could also be part of the heuristic). */
/* (Supposedly each OICQ message ends with an ETX so a test for */
/* same could also be part of the heuristic). */
if ( (try_val_to_str(tvb_get_guint8(tvb, 0), oicq_flag_vals) == NULL) ||
(try_val_to_str(tvb_get_ntohs(tvb, 3), oicq_command_vals) == NULL) )
return 0;
@ -182,7 +182,7 @@ proto_register_oicq(void)
{ &hf_oicq_data, {
"Data", "oicq.data", FT_STRING, BASE_NONE,
NULL, 0, NULL, HFILL }},
};
};
static gint *ett[] = {
&ett_oicq,
};
@ -202,3 +202,15 @@ proto_reg_handoff_oicq(void)
dissector_add_uint("udp.port", UDP_PORT_OICQ, oicq_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -281,14 +281,14 @@ static int dissect_pvfs_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
static guint get_pvfs_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset)
{
guint32 plen;
guint32 plen;
/*
* Get the length of the PVFS-over-TCP packet. Ignore top 32 bits
*/
plen = tvb_get_letohl(tvb, offset + 16);
/*
* Get the length of the PVFS-over-TCP packet. Ignore top 32 bits
*/
plen = tvb_get_letohl(tvb, offset + 16);
return plen+24;
return plen+24;
}
static int
@ -1017,7 +1017,7 @@ dissect_fhandle_data_unknown(tvbuff_t *tvb, int offset, proto_tree *tree)
static void
dissect_fhandle_data(tvbuff_t *tvb, int offset, packet_info *pinfo _U_,
proto_tree *tree, guint32 *hash)
proto_tree *tree, guint32 *hash)
{
guint32 fhhash;
guint32 i;
@ -3617,3 +3617,15 @@ proto_reg_handoff_pvfs(void)
heur_dissector_add("tcp", dissect_pvfs_heur, proto_pvfs);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -122,9 +122,9 @@ static const value_string names_control_command[] = {
#define QUAKE_MAXSTRING 0x800
static const value_string names_control_direction[] = {
{ CCREQ, "Request" },
{ CCREP, "Reply" },
{ 0, NULL }
{ CCREQ, "Request" },
{ CCREP, "Reply" },
{ 0, NULL }
};
@ -481,136 +481,136 @@ void proto_reg_handoff_quake(void);
void
proto_register_quake(void)
{
static hf_register_info hf[] = {
{ &hf_quake_header_flags,
{ "Flags", "quake.header.flags",
FT_UINT16, BASE_HEX, NULL, 0x0,
NULL, HFILL }},
{ &hf_quake_header_flags_data,
{ "Data", "quake.header.flags.data",
FT_BOOLEAN, 16, TFS(&tfs_set_notset), NETFLAG_DATA,
NULL, HFILL }},
{ &hf_quake_header_flags_ack,
{ "Acknowledgment", "quake.header.flags.ack",
FT_BOOLEAN, 16, TFS(&tfs_set_notset), NETFLAG_ACK,
NULL, HFILL }},
{ &hf_quake_header_flags_no_ack,
{ "No Acknowledgment", "quake.header.flags.no_ack",
FT_BOOLEAN, 16, TFS(&tfs_set_notset), NETFLAG_NAK,
NULL, HFILL }},
{ &hf_quake_header_flags_endmsg,
{ "End Of Message", "quake.header.flags.endmsg",
FT_BOOLEAN, 16, TFS(&tfs_set_notset), NETFLAG_EOM,
NULL, HFILL }},
{ &hf_quake_header_flags_unreliable,
{ "Unreliable", "quake.header.flags.unreliable",
FT_BOOLEAN, 16, TFS(&tfs_set_notset), NETFLAG_UNRELIABLE,
NULL, HFILL }},
{ &hf_quake_header_flags_control,
{ "Control", "quake.header.flags.control",
FT_BOOLEAN, 16, TFS(&tfs_set_notset), NETFLAG_CTL,
NULL, HFILL }},
{ &hf_quake_header_length,
{ "Length", "quake.header.length",
FT_UINT16, BASE_DEC, NULL, 0x0,
"full data length", HFILL }},
{ &hf_quake_header_sequence,
{ "Sequence", "quake.header.sequence",
FT_UINT32, BASE_HEX, NULL, 0x0,
"Sequence Number", HFILL }},
{ &hf_quake_control_command,
{ "Command", "quake.control.command",
FT_UINT8, BASE_HEX, VALS(names_control_command), 0x0,
"Control Command", HFILL }},
{ &hf_quake_CCREQ_CONNECT_game,
{ "Game", "quake.control.connect.game",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Game Name", HFILL }},
{ &hf_quake_CCREQ_CONNECT_version,
{ "Version", "quake.control.connect.version",
FT_UINT8, BASE_DEC, NULL, 0x0,
"Game Protocol Version Number", HFILL }},
{ &hf_quake_CCREQ_SERVER_INFO_game,
{ "Game", "quake.control.server_info.game",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Game Name", HFILL }},
{ &hf_quake_CCREQ_SERVER_INFO_version,
{ "Version", "quake.control.server_info.version",
FT_UINT8, BASE_DEC, NULL, 0x0,
"Game Protocol Version Number", HFILL }},
{ &hf_quake_CCREQ_PLAYER_INFO_player,
{ "Player", "quake.control.player_info.player",
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
{ &hf_quake_CCREQ_RULE_INFO_lastrule,
{ "Last Rule", "quake.control.rule_info.lastrule",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Last Rule Name", HFILL }},
{ &hf_quake_CCREP_ACCEPT_port,
{ "Port", "quake.control.accept.port",
FT_UINT32, BASE_DEC, NULL, 0x0,
"Game Data Port", HFILL }},
{ &hf_quake_CCREP_REJECT_reason,
{ "Reason", "quake.control.reject.reason",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Reject Reason", HFILL }},
{ &hf_quake_CCREP_SERVER_INFO_address,
{ "Address", "quake.control.server_info.address",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Server Address", HFILL }},
{ &hf_quake_CCREP_SERVER_INFO_server,
{ "Server", "quake.control.server_info.server",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Server Name", HFILL }},
{ &hf_quake_CCREP_SERVER_INFO_map,
{ "Map", "quake.control.server_info.map",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Map Name", HFILL }},
{ &hf_quake_CCREP_SERVER_INFO_num_player,
{ "Number of Players", "quake.control.server_info.num_player",
FT_UINT8, BASE_DEC, NULL, 0x0,
"Current Number of Players", HFILL }},
{ &hf_quake_CCREP_SERVER_INFO_max_player,
{ "Maximal Number of Players", "quake.control.server_info.max_player",
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
{ &hf_quake_CCREP_PLAYER_INFO_name,
{ "Name", "quake.control.player_info.name",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Player Name", HFILL }},
{ &hf_quake_CCREP_PLAYER_INFO_colors,
{ "Colors", "quake.control.player_info.colors",
FT_UINT32, BASE_HEX, NULL, 0x0,
"Player Colors", HFILL }},
{ &hf_quake_CCREP_PLAYER_INFO_colors_shirt,
{ "Shirt", "quake.control.player_info.colors.shirt",
FT_UINT8, BASE_DEC, VALS(names_colors), 0x0,
"Shirt Color", HFILL }},
{ &hf_quake_CCREP_PLAYER_INFO_colors_pants,
{ "Pants", "quake.control.player_info.colors.pants",
FT_UINT8, BASE_DEC, VALS(names_colors), 0x0,
"Pants Color", HFILL }},
{ &hf_quake_CCREP_PLAYER_INFO_frags,
{ "Frags", "quake.control.player_info.frags",
FT_UINT32, BASE_DEC, NULL, 0x0,
"Player Frags", HFILL }},
{ &hf_quake_CCREP_PLAYER_INFO_connect_time,
{ "Connect Time", "quake.control.player_info.connect_time",
FT_UINT32, BASE_DEC, NULL, 0x0,
"Player Connect Time", HFILL }},
{ &hf_quake_CCREP_PLAYER_INFO_address,
{ "Address", "quake.control.player_info.address",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Player Address", HFILL }},
{ &hf_quake_CCREP_RULE_INFO_rule,
{ "Rule", "quake.control.rule_info.rule",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Rule Name", HFILL }},
{ &hf_quake_CCREP_RULE_INFO_value,
{ "Value", "quake.control.rule_info.value",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Rule Value", HFILL }},
};
static hf_register_info hf[] = {
{ &hf_quake_header_flags,
{ "Flags", "quake.header.flags",
FT_UINT16, BASE_HEX, NULL, 0x0,
NULL, HFILL }},
{ &hf_quake_header_flags_data,
{ "Data", "quake.header.flags.data",
FT_BOOLEAN, 16, TFS(&tfs_set_notset), NETFLAG_DATA,
NULL, HFILL }},
{ &hf_quake_header_flags_ack,
{ "Acknowledgment", "quake.header.flags.ack",
FT_BOOLEAN, 16, TFS(&tfs_set_notset), NETFLAG_ACK,
NULL, HFILL }},
{ &hf_quake_header_flags_no_ack,
{ "No Acknowledgment", "quake.header.flags.no_ack",
FT_BOOLEAN, 16, TFS(&tfs_set_notset), NETFLAG_NAK,
NULL, HFILL }},
{ &hf_quake_header_flags_endmsg,
{ "End Of Message", "quake.header.flags.endmsg",
FT_BOOLEAN, 16, TFS(&tfs_set_notset), NETFLAG_EOM,
NULL, HFILL }},
{ &hf_quake_header_flags_unreliable,
{ "Unreliable", "quake.header.flags.unreliable",
FT_BOOLEAN, 16, TFS(&tfs_set_notset), NETFLAG_UNRELIABLE,
NULL, HFILL }},
{ &hf_quake_header_flags_control,
{ "Control", "quake.header.flags.control",
FT_BOOLEAN, 16, TFS(&tfs_set_notset), NETFLAG_CTL,
NULL, HFILL }},
{ &hf_quake_header_length,
{ "Length", "quake.header.length",
FT_UINT16, BASE_DEC, NULL, 0x0,
"full data length", HFILL }},
{ &hf_quake_header_sequence,
{ "Sequence", "quake.header.sequence",
FT_UINT32, BASE_HEX, NULL, 0x0,
"Sequence Number", HFILL }},
{ &hf_quake_control_command,
{ "Command", "quake.control.command",
FT_UINT8, BASE_HEX, VALS(names_control_command), 0x0,
"Control Command", HFILL }},
{ &hf_quake_CCREQ_CONNECT_game,
{ "Game", "quake.control.connect.game",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Game Name", HFILL }},
{ &hf_quake_CCREQ_CONNECT_version,
{ "Version", "quake.control.connect.version",
FT_UINT8, BASE_DEC, NULL, 0x0,
"Game Protocol Version Number", HFILL }},
{ &hf_quake_CCREQ_SERVER_INFO_game,
{ "Game", "quake.control.server_info.game",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Game Name", HFILL }},
{ &hf_quake_CCREQ_SERVER_INFO_version,
{ "Version", "quake.control.server_info.version",
FT_UINT8, BASE_DEC, NULL, 0x0,
"Game Protocol Version Number", HFILL }},
{ &hf_quake_CCREQ_PLAYER_INFO_player,
{ "Player", "quake.control.player_info.player",
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
{ &hf_quake_CCREQ_RULE_INFO_lastrule,
{ "Last Rule", "quake.control.rule_info.lastrule",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Last Rule Name", HFILL }},
{ &hf_quake_CCREP_ACCEPT_port,
{ "Port", "quake.control.accept.port",
FT_UINT32, BASE_DEC, NULL, 0x0,
"Game Data Port", HFILL }},
{ &hf_quake_CCREP_REJECT_reason,
{ "Reason", "quake.control.reject.reason",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Reject Reason", HFILL }},
{ &hf_quake_CCREP_SERVER_INFO_address,
{ "Address", "quake.control.server_info.address",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Server Address", HFILL }},
{ &hf_quake_CCREP_SERVER_INFO_server,
{ "Server", "quake.control.server_info.server",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Server Name", HFILL }},
{ &hf_quake_CCREP_SERVER_INFO_map,
{ "Map", "quake.control.server_info.map",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Map Name", HFILL }},
{ &hf_quake_CCREP_SERVER_INFO_num_player,
{ "Number of Players", "quake.control.server_info.num_player",
FT_UINT8, BASE_DEC, NULL, 0x0,
"Current Number of Players", HFILL }},
{ &hf_quake_CCREP_SERVER_INFO_max_player,
{ "Maximal Number of Players", "quake.control.server_info.max_player",
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
{ &hf_quake_CCREP_PLAYER_INFO_name,
{ "Name", "quake.control.player_info.name",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Player Name", HFILL }},
{ &hf_quake_CCREP_PLAYER_INFO_colors,
{ "Colors", "quake.control.player_info.colors",
FT_UINT32, BASE_HEX, NULL, 0x0,
"Player Colors", HFILL }},
{ &hf_quake_CCREP_PLAYER_INFO_colors_shirt,
{ "Shirt", "quake.control.player_info.colors.shirt",
FT_UINT8, BASE_DEC, VALS(names_colors), 0x0,
"Shirt Color", HFILL }},
{ &hf_quake_CCREP_PLAYER_INFO_colors_pants,
{ "Pants", "quake.control.player_info.colors.pants",
FT_UINT8, BASE_DEC, VALS(names_colors), 0x0,
"Pants Color", HFILL }},
{ &hf_quake_CCREP_PLAYER_INFO_frags,
{ "Frags", "quake.control.player_info.frags",
FT_UINT32, BASE_DEC, NULL, 0x0,
"Player Frags", HFILL }},
{ &hf_quake_CCREP_PLAYER_INFO_connect_time,
{ "Connect Time", "quake.control.player_info.connect_time",
FT_UINT32, BASE_DEC, NULL, 0x0,
"Player Connect Time", HFILL }},
{ &hf_quake_CCREP_PLAYER_INFO_address,
{ "Address", "quake.control.player_info.address",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Player Address", HFILL }},
{ &hf_quake_CCREP_RULE_INFO_rule,
{ "Rule", "quake.control.rule_info.rule",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Rule Name", HFILL }},
{ &hf_quake_CCREP_RULE_INFO_value,
{ "Value", "quake.control.rule_info.value",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Rule Value", HFILL }},
};
static gint *ett[] = {
&ett_quake,
&ett_quake_control,
@ -620,17 +620,17 @@ proto_register_quake(void)
module_t *quake_module;
proto_quake = proto_register_protocol("Quake Network Protocol",
"QUAKE", "quake");
"QUAKE", "quake");
proto_register_field_array(proto_quake, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
/* Register a configuration option for port */
quake_module = prefs_register_protocol(proto_quake,
proto_reg_handoff_quake);
proto_reg_handoff_quake);
prefs_register_uint_preference(quake_module, "udp.port",
"Quake Server UDP Port",
"Set the UDP port for the Quake Server",
10, &gbl_quakeServerPort);
"Quake Server UDP Port",
"Set the UDP port for the Quake Server",
10, &gbl_quakeServerPort);
}
@ -654,4 +654,15 @@ proto_reg_handoff_quake(void)
dissector_add_uint("udp.port", gbl_quakeServerPort, quake_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -26,7 +26,7 @@
/*
All informations used in this decoding were gathered from
All informations used in this decoding were gathered from
* some own captures of a private server,
* the "Server commands howto" document written by id Software
(http://www.quake3arena.com/tech/ServerCommandsHowto.html)
@ -173,7 +173,7 @@ dissect_quake3_ConnectionlessPacket(tvbuff_t *tvb, packet_info *pinfo _U_,
* encoding is used for them?
*/
text = tvb_get_stringz_enc(wmem_packet_scope(), tvb, offset, &len, ENC_ASCII|ENC_NA);
if (cl_tree) {
if (cl_tree) {
text_item = proto_tree_add_string(cl_tree,
hf_quake3_connectionless_text,
tvb, offset, len, text);
@ -318,13 +318,13 @@ dissect_quake3_ConnectionlessPacket(tvbuff_t *tvb, packet_info *pinfo _U_,
*direction = DIR_UNKNOWN;
}
if (text_tree && command_finished == FALSE) {
if (text_tree && command_finished == FALSE) {
proto_tree_add_string(text_tree, hf_quake3_connectionless_command,
tvb, offset, command_len,
val_to_str_const(command, names_command, "Unknown"));
}
}
/*offset += len;*/
/*offset += len;*/
}
@ -349,9 +349,9 @@ dissect_quake3_server_commands(tvbuff_t *tvb, packet_info *pinfo,
static const value_string names_reliable[] = {
{ 0, "Non Reliable" },
{ 1, "Reliable" },
{ 0, NULL }
{ 0, "Non Reliable" },
{ 1, "Reliable" },
{ 0, NULL }
};
@ -600,7 +600,7 @@ proto_reg_handoff_quake3(void)
dissector_delete_uint("udp.port", master_port+i, quake3_handle);
}
/* set port for future deletes */
/* set port for future deletes */
server_port = gbl_quake3_server_port;
master_port = gbl_quake3_master_port;
@ -613,4 +613,15 @@ proto_reg_handoff_quake3(void)
quake3_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -78,10 +78,10 @@ static gint ett_quakeworld_game_svc = -1;
static dissector_handle_t data_handle;
/*
helper functions, they may ave to go somewhere else
they are mostly copied without change from
quakeworldsource/client/cmd.c
quakeworldsource/client/common.c
helper functions, they may ave to go somewhere else
they are mostly copied without change from
quakeworldsource/client/cmd.c
quakeworldsource/client/common.c
*/
#define MAX_TEXT_SIZE 2048
@ -369,12 +369,12 @@ dissect_quakeworld_ConnectionlessPacket(tvbuff_t *tvb, packet_info *pinfo,
text = tvb_get_stringz_enc(wmem_packet_scope(), tvb, offset, &len, ENC_ASCII|ENC_NA);
/* actually, we should look for a eol char and stop already there */
if (cl_tree) {
if (cl_tree) {
proto_item *text_item;
text_item = proto_tree_add_string(cl_tree, hf_quakeworld_connectionless_text,
text_item = proto_tree_add_string(cl_tree, hf_quakeworld_connectionless_text,
tvb, offset, len, text);
text_tree = proto_item_add_subtree(text_item, ett_quakeworld_connectionless_text);
}
}
if (direction == DIR_C2S) {
/* client to server commands */
@ -564,9 +564,9 @@ dissect_quakeworld_server_commands(tvbuff_t *tvb, packet_info *pinfo,
static const value_string names_reliable[] = {
{ 0, "Non Reliable" },
{ 1, "Reliable" },
{ 0, NULL }
{ 0, "Non Reliable" },
{ 1, "Reliable" },
{ 0, NULL }
};
@ -833,9 +833,21 @@ proto_reg_handoff_quakeworld(void)
dissector_delete_uint("udp.port", ServerPort, quakeworld_handle);
}
/* set port for future deletes */
ServerPort=gbl_quakeworldServerPort;
/* set port for future deletes */
ServerPort=gbl_quakeworldServerPort;
dissector_add_uint("udp.port", gbl_quakeworldServerPort, quakeworld_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -252,4 +252,15 @@ proto_reg_handoff_redback(void)
dissector_add_uint("wtap_encap", WTAP_ENCAP_REDBACK, redback_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -46,7 +46,7 @@ void proto_register_rfc2190(void);
void proto_reg_handoff_rfc2190(void);
/* H.263 header fields */
static int proto_rfc2190 = -1;
static int proto_rfc2190 = -1;
/* Mode A header */
static int hf_rfc2190_ftype = -1;
@ -72,44 +72,44 @@ static int hf_rfc2190_vmv1 = -1;
static int hf_rfc2190_hmv2 = -1;
static int hf_rfc2190_vmv2 = -1;
static gint ett_rfc2190 = -1;
static gint ett_rfc2190 = -1;
static dissector_handle_t h263_handle;
static void
dissect_rfc2190( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree )
{
proto_item *ti = NULL;
proto_tree *rfc2190_tree = NULL;
int offset = 0;
unsigned int rfc2190_version = 0;
tvbuff_t *next_tvb;
int hdr_len = 0;
proto_item *ti = NULL;
proto_tree *rfc2190_tree = NULL;
int offset = 0;
unsigned int rfc2190_version = 0;
tvbuff_t *next_tvb;
int hdr_len = 0;
rfc2190_version = (tvb_get_guint8( tvb, offset ) & 0xc0 ) >> 6;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "H.263 ");
/* Three formats (mode A, mode B and mode C) are defined for H.263
* payload header. In mode A, an H.263 payload header of four bytes is
* present before actual compressed H.263 video bitstream in a packet.
* It allows fragmentation at GOB boundaries. In mode B, an eight byte
* H.263 payload header is used and each packet starts at MB boundaries
* without the PB-frames option. Finally, a twelve byte H.263 payload
* header is defined in mode C to support fragmentation at MB boundaries
* for frames that are coded with the PB-frames option.
*/
/* Three formats (mode A, mode B and mode C) are defined for H.263
* payload header. In mode A, an H.263 payload header of four bytes is
* present before actual compressed H.263 video bitstream in a packet.
* It allows fragmentation at GOB boundaries. In mode B, an eight byte
* H.263 payload header is used and each packet starts at MB boundaries
* without the PB-frames option. Finally, a twelve byte H.263 payload
* header is defined in mode C to support fragmentation at MB boundaries
* for frames that are coded with the PB-frames option.
*/
if( rfc2190_version == 0x00) {
col_append_str( pinfo->cinfo, COL_INFO, "MODE A ");
hdr_len = 4;
hdr_len = 4;
}
else if( rfc2190_version == 0x02) {
col_append_str( pinfo->cinfo, COL_INFO, "MODE B ");
hdr_len = 8;
hdr_len = 8;
}
else if( rfc2190_version == 0x03) {
col_append_str( pinfo->cinfo, COL_INFO, "MODE C ");
hdr_len = 12;
hdr_len = 12;
}
if ( tree ) {
@ -117,27 +117,27 @@ dissect_rfc2190( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree )
rfc2190_tree = proto_item_add_subtree( ti, ett_rfc2190 );
/* FBIT 1st octet, 1 bit */
proto_tree_add_item( rfc2190_tree, hf_rfc2190_ftype, tvb, offset, 1, ENC_BIG_ENDIAN );
proto_tree_add_item( rfc2190_tree, hf_rfc2190_ftype, tvb, offset, 1, ENC_BIG_ENDIAN );
/* PBIT 1st octet, 1 bit */
proto_tree_add_item( rfc2190_tree, hf_rfc2190_pbframes, tvb, offset, 1, ENC_BIG_ENDIAN );
proto_tree_add_item( rfc2190_tree, hf_rfc2190_pbframes, tvb, offset, 1, ENC_BIG_ENDIAN );
/* SBIT 1st octet, 3 bits */
proto_tree_add_item( rfc2190_tree, hf_rfc2190_sbit, tvb, offset, 1, ENC_BIG_ENDIAN );
proto_tree_add_item( rfc2190_tree, hf_rfc2190_sbit, tvb, offset, 1, ENC_BIG_ENDIAN );
/* EBIT 1st octet, 3 bits */
proto_tree_add_item( rfc2190_tree, hf_rfc2190_ebit, tvb, offset, 1, ENC_BIG_ENDIAN );
proto_tree_add_item( rfc2190_tree, hf_rfc2190_ebit, tvb, offset, 1, ENC_BIG_ENDIAN );
offset++;
/* SRC 2nd octet, 3 bits */
proto_tree_add_item( rfc2190_tree, hf_rfc2190_srcformat, tvb, offset, 1, ENC_BIG_ENDIAN );
proto_tree_add_item( rfc2190_tree, hf_rfc2190_srcformat, tvb, offset, 1, ENC_BIG_ENDIAN );
if(rfc2190_version == 0x00) { /* MODE A */
/* I flag, 1 bit */
proto_tree_add_bits_item(rfc2190_tree, hf_rfc2190_picture_coding_type, tvb, (offset<<3)+3, 1, ENC_BIG_ENDIAN);
proto_tree_add_bits_item(rfc2190_tree, hf_rfc2190_picture_coding_type, tvb, (offset<<3)+3, 1, ENC_BIG_ENDIAN);
/* U flag, 1 bit */
proto_tree_add_bits_item(rfc2190_tree, hf_rfc2190_unrestricted_motion_vector, tvb, (offset<<3)+4, 1, ENC_BIG_ENDIAN);
proto_tree_add_bits_item(rfc2190_tree, hf_rfc2190_unrestricted_motion_vector, tvb, (offset<<3)+4, 1, ENC_BIG_ENDIAN);
/* S flag, 1 bit */
proto_tree_add_bits_item(rfc2190_tree, hf_rfc2190_syntax_based_arithmetic, tvb, (offset<<3)+5, 1, ENC_BIG_ENDIAN);
proto_tree_add_bits_item(rfc2190_tree, hf_rfc2190_syntax_based_arithmetic, tvb, (offset<<3)+5, 1, ENC_BIG_ENDIAN);
/* A flag, 1 bit */
proto_tree_add_bits_item(rfc2190_tree, hf_rfc2190_advanced_prediction, tvb, (offset<<3)+6, 1, ENC_BIG_ENDIAN);
proto_tree_add_bits_item(rfc2190_tree, hf_rfc2190_advanced_prediction, tvb, (offset<<3)+6, 1, ENC_BIG_ENDIAN);
/* Reserved 2nd octect, 1 bit + 3rd octect 3 bits */
proto_tree_add_uint( rfc2190_tree, hf_rfc2190_r, tvb, offset, 2, ( ( tvb_get_guint8( tvb, offset ) & 0x1 ) << 3 ) + ( ( tvb_get_guint8( tvb, offset + 1 ) & 0xe0 ) >> 5 ) );
@ -145,9 +145,9 @@ dissect_rfc2190( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree )
offset++;
/* DBQ 3 octect, 2 bits */
proto_tree_add_item( rfc2190_tree, hf_rfc2190_dbq, tvb, offset, 1, ENC_BIG_ENDIAN );
proto_tree_add_item( rfc2190_tree, hf_rfc2190_dbq, tvb, offset, 1, ENC_BIG_ENDIAN );
/* TRB 3 octect, 3 bits */
proto_tree_add_item( rfc2190_tree, hf_rfc2190_trb, tvb, offset, 1, ENC_BIG_ENDIAN );
proto_tree_add_item( rfc2190_tree, hf_rfc2190_trb, tvb, offset, 1, ENC_BIG_ENDIAN );
offset++;
/* TR 4 octect, 8 bits */
@ -244,286 +244,296 @@ dissect_rfc2190( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree )
void
proto_reg_handoff_rfc2190(void)
{
dissector_handle_t rfc2190_handle;
dissector_handle_t rfc2190_handle;
rfc2190_handle = find_dissector("rfc2190");
dissector_add_uint("rtp.pt", PT_H263, rfc2190_handle);
dissector_add_uint("iax2.codec", AST_FORMAT_H263, rfc2190_handle);
rfc2190_handle = find_dissector("rfc2190");
dissector_add_uint("rtp.pt", PT_H263, rfc2190_handle);
dissector_add_uint("iax2.codec", AST_FORMAT_H263, rfc2190_handle);
h263_handle = find_dissector("h263data");
h263_handle = find_dissector("h263data");
}
void
proto_register_rfc2190(void)
{
static hf_register_info hf[] =
{
{
&hf_rfc2190_ftype,
{
"F",
"rfc2190.ftype",
FT_BOOLEAN,
8,
NULL,
0x80,
"Indicates the mode of the payload header (MODE A or B/C)", HFILL
}
},
{
&hf_rfc2190_pbframes,
{
"p/b frame",
"rfc2190.pbframes",
FT_BOOLEAN,
8,
NULL,
0x40,
"Optional PB-frames mode as defined by H.263 (MODE C)", HFILL
}
},
{
&hf_rfc2190_sbit,
{
"Start bit position",
"rfc2190.sbit",
FT_UINT8,
BASE_DEC,
NULL,
0x38,
"Start bit position specifies number of most significant bits that shall be ignored in the first data byte.", HFILL
}
},
{
&hf_rfc2190_ebit,
{
"End bit position",
"rfc2190.ebit",
FT_UINT8,
BASE_DEC,
NULL,
0x7,
"End bit position specifies number of least significant bits that shall be ignored in the last data byte.", HFILL
}
},
{
&hf_rfc2190_srcformat,
{
"SRC format",
"rfc2190.srcformat",
FT_UINT8,
BASE_DEC,
VALS(h263_srcformat_vals),
0xe0,
"Source format specifies the resolution of the current picture.", HFILL
}
},
{
&hf_rfc2190_picture_coding_type,
{
"Inter-coded frame",
"rfc2190.picture_coding_type",
FT_BOOLEAN,
8,
NULL,
0x0,
"Picture coding type, intra-coded (false) or inter-coded (true)", HFILL
}
},
{
&hf_rfc2190_unrestricted_motion_vector,
{
"Motion vector",
"rfc2190.unrestricted_motion_vector",
FT_BOOLEAN,
8,
NULL,
0x0,
"Unrestricted Motion Vector option for current picture", HFILL
}
},
{
&hf_rfc2190_syntax_based_arithmetic,
{
"Syntax-based arithmetic coding",
"rfc2190.syntax_based_arithmetic",
FT_BOOLEAN,
8,
NULL,
0x0,
"Syntax-based Arithmetic Coding option for current picture", HFILL
}
},
{
&hf_rfc2190_advanced_prediction,
{
"Advanced prediction option",
"rfc2190.advanced_prediction",
FT_BOOLEAN,
8,
NULL,
0x0,
"Advanced Prediction option for current picture", HFILL
}
},
{
&hf_rfc2190_dbq,
{
"Differential quantization parameter",
"rfc2190.dbq",
FT_UINT8,
BASE_DEC,
NULL,
0x18,
"Differential quantization parameter used to calculate quantizer for the B frame based on quantizer for the P frame, when PB-frames option is used.", HFILL
}
},
{
&hf_rfc2190_trb,
{
"Temporal Reference for B frames",
"rfc2190.trb",
FT_UINT8,
BASE_DEC,
NULL,
0x07,
"Temporal Reference for the B frame as defined by H.263", HFILL
}
},
{
&hf_rfc2190_tr,
{
"Temporal Reference for P frames",
"rfc2190.tr",
FT_UINT8,
BASE_DEC,
NULL,
0x0,
"Temporal Reference for the P frame as defined by H.263", HFILL
}
},
{
&hf_rfc2190_quant,
{
"Quantizer",
"rfc2190.quant",
FT_UINT8,
BASE_DEC,
NULL,
0x0,
"Quantization value for the first MB coded at the starting of the packet.", HFILL
}
},
{
&hf_rfc2190_gobn,
{
"GOB Number",
"rfc2190.gobn",
FT_UINT8,
BASE_DEC,
NULL,
0x0,
"GOB number in effect at the start of the packet.", HFILL
}
},
{
&hf_rfc2190_mba,
{
"Macroblock address",
"rfc2190.mba",
FT_UINT16,
BASE_DEC,
NULL,
0x0,
"The address within the GOB of the first MB in the packet, counting from zero in scan order.", HFILL
}
},
{
&hf_rfc2190_hmv1,
{
"Horizontal motion vector 1",
"rfc2190.hmv1",
FT_UINT8,
BASE_DEC,
NULL,
0x0,
"Horizontal motion vector predictor for the first MB in this packet", HFILL
}
},
{
&hf_rfc2190_vmv1,
{
"Vertical motion vector 1",
"rfc2190.vmv1",
FT_UINT8,
BASE_DEC,
NULL,
0x0,
"Vertical motion vector predictor for the first MB in this packet", HFILL
}
},
{
&hf_rfc2190_hmv2,
{
"Horizontal motion vector 2",
"rfc2190.hmv2",
FT_UINT8,
BASE_DEC,
NULL,
0x0,
"Horizontal motion vector predictor for block number 3 in the first MB in this packet when four motion vectors are used with the advanced prediction option.", HFILL
}
},
{
&hf_rfc2190_vmv2,
{
"Vertical motion vector 2",
"rfc2190.vmv2",
FT_UINT8,
BASE_DEC,
NULL,
0x0,
"Vertical motion vector predictor for block number 3 in the first MB in this packet when four motion vectors are used with the advanced prediction option.", HFILL
}
},
{
&hf_rfc2190_r,
{
"Reserved field",
"rfc2190.r",
FT_UINT8,
BASE_DEC,
NULL,
0x0,
"Reserved field that should contain zeroes", HFILL
}
},
{
&hf_rfc2190_rr,
{
"Reserved field 2",
"rfc2190.rr",
FT_UINT16,
BASE_DEC,
NULL,
0x0,
"Reserved field that should contain zeroes", HFILL
}
},
};
static hf_register_info hf[] = {
{
&hf_rfc2190_ftype,
{
"F",
"rfc2190.ftype",
FT_BOOLEAN,
8,
NULL,
0x80,
"Indicates the mode of the payload header (MODE A or B/C)", HFILL
}
},
{
&hf_rfc2190_pbframes,
{
"p/b frame",
"rfc2190.pbframes",
FT_BOOLEAN,
8,
NULL,
0x40,
"Optional PB-frames mode as defined by H.263 (MODE C)", HFILL
}
},
{
&hf_rfc2190_sbit,
{
"Start bit position",
"rfc2190.sbit",
FT_UINT8,
BASE_DEC,
NULL,
0x38,
"Start bit position specifies number of most significant bits that shall be ignored in the first data byte.", HFILL
}
},
{
&hf_rfc2190_ebit,
{
"End bit position",
"rfc2190.ebit",
FT_UINT8,
BASE_DEC,
NULL,
0x7,
"End bit position specifies number of least significant bits that shall be ignored in the last data byte.", HFILL
}
},
{
&hf_rfc2190_srcformat,
{
"SRC format",
"rfc2190.srcformat",
FT_UINT8,
BASE_DEC,
VALS(h263_srcformat_vals),
0xe0,
"Source format specifies the resolution of the current picture.", HFILL
}
},
{
&hf_rfc2190_picture_coding_type,
{
"Inter-coded frame",
"rfc2190.picture_coding_type",
FT_BOOLEAN,
8,
NULL,
0x0,
"Picture coding type, intra-coded (false) or inter-coded (true)", HFILL
}
},
{
&hf_rfc2190_unrestricted_motion_vector,
{
"Motion vector",
"rfc2190.unrestricted_motion_vector",
FT_BOOLEAN,
8,
NULL,
0x0,
"Unrestricted Motion Vector option for current picture", HFILL
}
},
{
&hf_rfc2190_syntax_based_arithmetic,
{
"Syntax-based arithmetic coding",
"rfc2190.syntax_based_arithmetic",
FT_BOOLEAN,
8,
NULL,
0x0,
"Syntax-based Arithmetic Coding option for current picture", HFILL
}
},
{
&hf_rfc2190_advanced_prediction,
{
"Advanced prediction option",
"rfc2190.advanced_prediction",
FT_BOOLEAN,
8,
NULL,
0x0,
"Advanced Prediction option for current picture", HFILL
}
},
{
&hf_rfc2190_dbq,
{
"Differential quantization parameter",
"rfc2190.dbq",
FT_UINT8,
BASE_DEC,
NULL,
0x18,
"Differential quantization parameter used to calculate quantizer for the B frame based on quantizer for the P frame, when PB-frames option is used.", HFILL
}
},
{
&hf_rfc2190_trb,
{
"Temporal Reference for B frames",
"rfc2190.trb",
FT_UINT8,
BASE_DEC,
NULL,
0x07,
"Temporal Reference for the B frame as defined by H.263", HFILL
}
},
{
&hf_rfc2190_tr,
{
"Temporal Reference for P frames",
"rfc2190.tr",
FT_UINT8,
BASE_DEC,
NULL,
0x0,
"Temporal Reference for the P frame as defined by H.263", HFILL
}
},
{
&hf_rfc2190_quant,
{
"Quantizer",
"rfc2190.quant",
FT_UINT8,
BASE_DEC,
NULL,
0x0,
"Quantization value for the first MB coded at the starting of the packet.", HFILL
}
},
{
&hf_rfc2190_gobn,
{
"GOB Number",
"rfc2190.gobn",
FT_UINT8,
BASE_DEC,
NULL,
0x0,
"GOB number in effect at the start of the packet.", HFILL
}
},
{
&hf_rfc2190_mba,
{
"Macroblock address",
"rfc2190.mba",
FT_UINT16,
BASE_DEC,
NULL,
0x0,
"The address within the GOB of the first MB in the packet, counting from zero in scan order.", HFILL
}
},
{
&hf_rfc2190_hmv1,
{
"Horizontal motion vector 1",
"rfc2190.hmv1",
FT_UINT8,
BASE_DEC,
NULL,
0x0,
"Horizontal motion vector predictor for the first MB in this packet", HFILL
}
},
{
&hf_rfc2190_vmv1,
{
"Vertical motion vector 1",
"rfc2190.vmv1",
FT_UINT8,
BASE_DEC,
NULL,
0x0,
"Vertical motion vector predictor for the first MB in this packet", HFILL
}
},
{
&hf_rfc2190_hmv2,
{
"Horizontal motion vector 2",
"rfc2190.hmv2",
FT_UINT8,
BASE_DEC,
NULL,
0x0,
"Horizontal motion vector predictor for block number 3 in the first MB in this packet when four motion vectors are used with the advanced prediction option.", HFILL
}
},
{
&hf_rfc2190_vmv2,
{
"Vertical motion vector 2",
"rfc2190.vmv2",
FT_UINT8,
BASE_DEC,
NULL,
0x0,
"Vertical motion vector predictor for block number 3 in the first MB in this packet when four motion vectors are used with the advanced prediction option.", HFILL
}
},
{
&hf_rfc2190_r,
{
"Reserved field",
"rfc2190.r",
FT_UINT8,
BASE_DEC,
NULL,
0x0,
"Reserved field that should contain zeroes", HFILL
}
},
{
&hf_rfc2190_rr,
{
"Reserved field 2",
"rfc2190.rr",
FT_UINT16,
BASE_DEC,
NULL,
0x0,
"Reserved field that should contain zeroes", HFILL
}
},
};
static gint *ett[] =
{
&ett_rfc2190,
};
static gint *ett[] = {
&ett_rfc2190,
};
proto_register_subtree_array(ett, array_length(ett));
proto_register_subtree_array(ett, array_length(ett));
proto_rfc2190 = proto_register_protocol("H.263 RTP Payload header (RFC2190)",
"RFC2190", "rfc2190");
proto_rfc2190 = proto_register_protocol("H.263 RTP Payload header (RFC2190)",
"RFC2190", "rfc2190");
proto_register_field_array(proto_rfc2190, hf, array_length(hf));
register_dissector("rfc2190", dissect_rfc2190, proto_rfc2190);
proto_register_field_array(proto_rfc2190, hf, array_length(hf));
register_dissector("rfc2190", dissect_rfc2190, proto_rfc2190);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 4
* tab-width: 8
* indent-tabs-mode: nil
* End:
*
* vi: set shiftwidth=4 tabstop=8 expandtab:
* :indentSize=4:tabSize=8:noTabs=true:
*/

View File

@ -300,5 +300,15 @@ proto_reg_handoff_rquota(void)
rpc_init_proc_table(RQUOTA_PROGRAM, 2, rquota2_proc, hf_rquota_procedure_v2);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -93,4 +93,15 @@ proto_reg_handoff_rwall(void)
rpc_init_proc_table(RWALL_PROGRAM, 1, rwall1_proc, hfi_rwall_procedure_v1.id);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -58,29 +58,29 @@ void proto_reg_handoff_sccpmg(void);
/* Same as below but with names typed out */
static const value_string sccpmg_message_type_values[] = {
{ SCCPMG_MESSAGE_TYPE_SSA, "SubSystem Allowed" },
{ SCCPMG_MESSAGE_TYPE_SSP, "SubSystem Prohibited" },
{ SCCPMG_MESSAGE_TYPE_SST, "Subsystem Status Test" },
{ SCCPMG_MESSAGE_TYPE_SOR, "Subsystem Out of service Request" },
{ SCCPMG_MESSAGE_TYPE_SOG, "Subsystem Out of service Grant" },
{ SCCPMG_MESSAGE_TYPE_SSC, "SubSystem Congested (ITU)" },
{ SCCPMG_MESSAGE_TYPE_SBR, "Subsystem Backup Routing (ANSI)" },
{ SCCPMG_MESSAGE_TYPE_SNR, "Subsystem Normal Routing (ANSI)" },
{ SCCPMG_MESSAGE_TYPE_SRT, "Subsystem Routing status Test (ANSI)" },
{ 0, NULL } };
{ SCCPMG_MESSAGE_TYPE_SSA, "SubSystem Allowed" },
{ SCCPMG_MESSAGE_TYPE_SSP, "SubSystem Prohibited" },
{ SCCPMG_MESSAGE_TYPE_SST, "Subsystem Status Test" },
{ SCCPMG_MESSAGE_TYPE_SOR, "Subsystem Out of service Request" },
{ SCCPMG_MESSAGE_TYPE_SOG, "Subsystem Out of service Grant" },
{ SCCPMG_MESSAGE_TYPE_SSC, "SubSystem Congested (ITU)" },
{ SCCPMG_MESSAGE_TYPE_SBR, "Subsystem Backup Routing (ANSI)" },
{ SCCPMG_MESSAGE_TYPE_SNR, "Subsystem Normal Routing (ANSI)" },
{ SCCPMG_MESSAGE_TYPE_SRT, "Subsystem Routing status Test (ANSI)" },
{ 0, NULL } };
/* Same as above but in acronym for (for the Info column) */
static const value_string sccpmg_message_type_acro_values[] = {
{ SCCPMG_MESSAGE_TYPE_SSA, "SSA" },
{ SCCPMG_MESSAGE_TYPE_SSP, "SSP" },
{ SCCPMG_MESSAGE_TYPE_SST, "SST" },
{ SCCPMG_MESSAGE_TYPE_SOR, "SOR" },
{ SCCPMG_MESSAGE_TYPE_SOG, "SOG" },
{ SCCPMG_MESSAGE_TYPE_SSC, "SSC" },
{ SCCPMG_MESSAGE_TYPE_SBR, "SBR" },
{ SCCPMG_MESSAGE_TYPE_SNR, "SNR" },
{ SCCPMG_MESSAGE_TYPE_SRT, "SRT" },
{ 0, NULL } };
{ SCCPMG_MESSAGE_TYPE_SSA, "SSA" },
{ SCCPMG_MESSAGE_TYPE_SSP, "SSP" },
{ SCCPMG_MESSAGE_TYPE_SST, "SST" },
{ SCCPMG_MESSAGE_TYPE_SOR, "SOR" },
{ SCCPMG_MESSAGE_TYPE_SOG, "SOG" },
{ SCCPMG_MESSAGE_TYPE_SSC, "SSC" },
{ SCCPMG_MESSAGE_TYPE_SBR, "SBR" },
{ SCCPMG_MESSAGE_TYPE_SNR, "SNR" },
{ SCCPMG_MESSAGE_TYPE_SRT, "SRT" },
{ 0, NULL } };
#define SCCPMG_MESSAGE_TYPE_OFFSET 0
@ -363,3 +363,15 @@ proto_reg_handoff_sccpmg(void)
dissector_add_uint("sccp.ssn", SCCPMG_SSN, sccpmg_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -1128,7 +1128,7 @@ sgsap_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 of
guint curr_len;
curr_offset = offset;
curr_len = len;
curr_len = len;
/* IMSI IMSI 9.4.6 O TLV 6-10 */
ELEM_OPT_TLV(0x01, GSM_A_PDU_TYPE_BSSMAP, BE_IMSI, NULL);
@ -1170,7 +1170,7 @@ sgsap_ue_act_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
guint curr_len;
curr_offset = offset;
curr_len = len;
curr_len = len;
/* IMSI IMSI 9.4.6 M TLV 6-10 */
ELEM_MAND_TLV(0x01, GSM_A_PDU_TYPE_BSSMAP, BE_IMSI, NULL);
@ -1189,7 +1189,7 @@ sgsap_ue_unreachable(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
guint curr_len;
curr_offset = offset;
curr_len = len;
curr_len = len;
/* IMSI IMSI 9.4.6 M TLV 6-10 */
@ -1210,7 +1210,7 @@ sgsap_ue_ul_unitdata(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
guint curr_len;
curr_offset = offset;
curr_len = len;
curr_len = len;
/* IMSI IMSI 9.4.6 M TLV 6-10 */
ELEM_MAND_TLV(0x01, GSM_A_PDU_TYPE_BSSMAP, BE_IMSI, NULL);
@ -1240,7 +1240,7 @@ sgsap_release_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
guint curr_len;
curr_offset = offset;
curr_len = len;
curr_len = len;
/* IMSI IMSI 9.4.6 M TLV 6-10 */
ELEM_MAND_TLV(0x01, GSM_A_PDU_TYPE_BSSMAP, BE_IMSI, NULL);
@ -1397,7 +1397,7 @@ dissect_sgsap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
guint8 oct;
/* Save pinfo */
len = tvb_length(tvb);
len = tvb_length(tvb);
/* Make entry in the Protocol column on summary display */
col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
@ -1447,7 +1447,7 @@ dissect_sgsap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
void proto_register_sgsap(void) {
guint i;
guint last_offset;
module_t *sgsap_module;
module_t *sgsap_module;
/* List of fields */
@ -1568,7 +1568,7 @@ void proto_register_sgsap(void) {
/* Set default SCTP ports */
range_convert_str(&global_sgsap_port_range, SGSAP_SCTP_PORT_RANGE, MAX_SCTP_PORT);
sgsap_module = prefs_register_protocol(proto_sgsap, proto_reg_handoff_sgsap);
sgsap_module = prefs_register_protocol(proto_sgsap, proto_reg_handoff_sgsap);
prefs_register_range_preference(sgsap_module, "sctp_ports",
"SGsAP SCTP port numbers",
@ -1602,3 +1602,15 @@ proto_reg_handoff_sgsap(void)
dissector_add_uint_range("sctp.port", sgsap_port_range, sgsap_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 4
* tab-width: 8
* indent-tabs-mode: nil
* End:
*
* vi: set shiftwidth=4 tabstop=8 expandtab:
* :indentSize=4:tabSize=8:noTabs=true:
*/

View File

@ -457,3 +457,15 @@ proto_reg_handoff_skype(void)
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -143,3 +143,15 @@ proto_reg_handoff_spray(void)
rpc_init_proc_table(SPRAY_PROGRAM, 1, spray1_proc, hf_spray_procedure_v1);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -72,14 +72,14 @@ static header_field_info *hfi_tali = NULL;
#define TALI_HFI_INIT HFI_INIT(proto_tali)
/* Initialize the protocol and registered fields */
static header_field_info hfi_tali_sync_indicator TALI_HFI_INIT =
{ "Sync", "tali.sync", FT_STRING, BASE_NONE, NULL, 0x00, "TALI SYNC", HFILL };
static header_field_info hfi_tali_sync_indicator TALI_HFI_INIT = {
"Sync", "tali.sync", FT_STRING, BASE_NONE, NULL, 0x00, "TALI SYNC", HFILL };
static header_field_info hfi_tali_opcode_indicator TALI_HFI_INIT =
{ "Opcode", "tali.opcode", FT_STRING, BASE_NONE, NULL, 0x00, "TALI Operation Code", HFILL };
static header_field_info hfi_tali_opcode_indicator TALI_HFI_INIT = {
"Opcode", "tali.opcode", FT_STRING, BASE_NONE, NULL, 0x00, "TALI Operation Code", HFILL };
static header_field_info hfi_tali_length_indicator TALI_HFI_INIT =
{ "Length", "tali.msu_length", FT_UINT16, BASE_DEC, NULL, 0x00, "TALI MSU Length", HFILL };
static header_field_info hfi_tali_length_indicator TALI_HFI_INIT = {
"Length", "tali.msu_length", FT_UINT16, BASE_DEC, NULL, 0x00, "TALI MSU Length", HFILL };
static dissector_table_t tali_dissector_table;
@ -150,15 +150,15 @@ dissect_tali(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
* A 'heuristic dissector' that attemtps to establish whether we have
* a TALI MSU here.
* Only works when:
* the fixed header is there
* it is a 'well-known' operation
* the fixed header is there
* it is a 'well-known' operation
*/
static gboolean
dissect_tali_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
char opcode[TALI_OPCODE_LENGTH]; /* TALI opcode */
if (tvb_reported_length(tvb) < TALI_HEADER_LENGTH) /* Mandatory header */
if (tvb_reported_length(tvb) < TALI_HEADER_LENGTH) /* Mandatory header */
return FALSE;
if (tvb_strneql(tvb, 0, TALI_SYNC, TALI_SYNC_LENGTH) != 0)
@ -217,9 +217,9 @@ proto_register_tali(void)
tali_module = prefs_register_protocol(proto_tali, NULL);
prefs_register_bool_preference(tali_module, "reassemble",
"Reassemble TALI messages spanning multiple TCP segments",
"Whether the TALI dissector should reassemble messages spanning multiple TCP segments."
" To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
"Reassemble TALI messages spanning multiple TCP segments",
"Whether the TALI dissector should reassemble messages spanning multiple TCP segments."
" To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
&tali_desegment);
}
@ -231,3 +231,15 @@ proto_reg_handoff_tali(void)
data_handle = find_dissector("data");
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local Variables:
* c-basic-offset: 2
* tab-width: 8
* indent-tabs-mode: nil
* End:
*
* ex: set shiftwidth=2 tabstop=8 expandtab:
* :indentSize=2:tabSize=8:noTabs=true:
*/

View File

@ -467,16 +467,16 @@ dissect_tapa_static(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
static gboolean
dissect_tapa_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
ws_ip* iph = (ws_ip*)data;
ws_ip *iph = (ws_ip*)data;
/* The TAPA protocol also uses IP protocol number 4 but it isn't really IPIP */
if (iph && (iph->ip_p == IP_PROTO_IPIP) && ((tvb_get_guint8(tvb, 0) & 0xF0) != 0x40) &&
(tvb_get_ntohs(tvb, 2)) < 20) {
dissect_tapa_static(tvb, pinfo, tree, data);
return TRUE;
}
/* The TAPA protocol also uses IP protocol number 4 but it isn't really IPIP */
if (iph && (iph->ip_p == IP_PROTO_IPIP) && ((tvb_get_guint8(tvb, 0) & 0xF0) != 0x40) &&
(tvb_get_ntohs(tvb, 2)) < 20) {
dissect_tapa_static(tvb, pinfo, tree, data);
return TRUE;
}
return FALSE;
return FALSE;
}
void
@ -484,137 +484,137 @@ proto_register_tapa(void)
{
static hf_register_info hf[] = {
/* TAPA discover header */
/* TAPA discover header */
{ &hf_tapa_discover_type,
{ "Type", "tapa.discover.type", FT_UINT8, BASE_DEC, VALS(tapa_discover_type_vals),
0x0, NULL, HFILL }},
{ "Type", "tapa.discover.type", FT_UINT8, BASE_DEC, VALS(tapa_discover_type_vals),
0x0, NULL, HFILL }},
{ &hf_tapa_discover_flags,
{ "Flags", "tapa.discover.flags", FT_UINT8, BASE_HEX, NULL,
0x0, NULL, HFILL }},
{ "Flags", "tapa.discover.flags", FT_UINT8, BASE_HEX, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_discover_length,
{ "Length", "tapa.discover.length", FT_UINT16, BASE_DEC, NULL,
0x0, NULL, HFILL }},
{ "Length", "tapa.discover.length", FT_UINT16, BASE_DEC, NULL,
0x0, NULL, HFILL }},
/* TAPA discover request */
/* TAPA discover request */
{ &hf_tapa_discover_req_type,
{ "Req type", "tapa.discover.req.type", FT_UINT8, BASE_DEC, VALS(tapa_discover_request_vals),
0x0, NULL, HFILL }},
{ "Req type", "tapa.discover.req.type", FT_UINT8, BASE_DEC, VALS(tapa_discover_request_vals),
0x0, NULL, HFILL }},
{ &hf_tapa_discover_req_pad,
{ "Req padding", "tapa.discover.req.pad", FT_UINT8, BASE_DEC, NULL,
0x0, NULL, HFILL }},
{ "Req padding", "tapa.discover.req.pad", FT_UINT8, BASE_DEC, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_discover_req_length,
{ "Req length", "tapa.discover.req.length", FT_UINT16, BASE_DEC, NULL,
0x0, NULL, HFILL }},
{ "Req length", "tapa.discover.req.length", FT_UINT16, BASE_DEC, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_discover_req_value,
{ "Req value", "tapa.discover.req.value", FT_BYTES, BASE_NONE, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_discover_req_value,
{ "Req value", "tapa.discover.req.value", FT_BYTES, BASE_NONE, NULL,
0x0, NULL, HFILL }},
/* TAPA discover reply */
{ &hf_tapa_discover_reply_switchip,
{ "Switch Ip", "tapa.discover.reply.switchip", FT_IPv4, BASE_NONE, NULL,
0x0, NULL, HFILL }},
/* TAPA discover reply */
{ &hf_tapa_discover_reply_switchip,
{ "Switch Ip", "tapa.discover.reply.switchip", FT_IPv4, BASE_NONE, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_discover_reply_unused,
{ "Reply unused", "tapa.discover.reply.unused", FT_UINT8, BASE_DEC, NULL,
0x0, NULL, HFILL }},
{ "Reply unused", "tapa.discover.reply.unused", FT_UINT8, BASE_DEC, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_discover_reply_bias,
{ "Reply bias", "tapa.discover.reply.bias", FT_UINT8, BASE_DEC, NULL,
0x0, NULL, HFILL }},
{ "Reply bias", "tapa.discover.reply.bias", FT_UINT8, BASE_DEC, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_discover_reply_pad,
{ "Reply pad", "tapa.discover.reply.pad", FT_BYTES, BASE_NONE, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_discover_reply_pad,
{ "Reply pad", "tapa.discover.reply.pad", FT_BYTES, BASE_NONE, NULL,
0x0, NULL, HFILL }},
/* TAPA discover new request/reply tlv */
/* TAPA discover new request/reply tlv */
{ &hf_tapa_discover_newtlv_type,
{ "New tlv type", "tapa.discover.newtlv.type", FT_UINT8, BASE_DEC, VALS(tapa_discover_request_vals),
0x0, NULL, HFILL }},
{ "New tlv type", "tapa.discover.newtlv.type", FT_UINT8, BASE_DEC, VALS(tapa_discover_request_vals),
0x0, NULL, HFILL }},
{ &hf_tapa_discover_newtlv_pad,
{ "New tlv padding", "tapa.discover.newtlv.pad", FT_UINT8, BASE_DEC, NULL,
0x0, NULL, HFILL }},
{ "New tlv padding", "tapa.discover.newtlv.pad", FT_UINT8, BASE_DEC, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_discover_newtlv_length,
{ "New tlv length", "tapa.discover.newtlv.length", FT_UINT16, BASE_DEC, NULL,
0x0, NULL, HFILL }},
{ "New tlv length", "tapa.discover.newtlv.length", FT_UINT16, BASE_DEC, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_discover_newtlv_valuetext,
{ "New tlv value", "tapa.discover.newtlv.valuetext", FT_STRING, BASE_NONE, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_discover_newtlv_valuetext,
{ "New tlv value", "tapa.discover.newtlv.valuetext", FT_STRING, BASE_NONE, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_discover_newtlv_valuehex,
{ "New tlv value", "tapa.discover.newtlv.valuehex", FT_BYTES, BASE_NONE, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_discover_newtlv_valuehex,
{ "New tlv value", "tapa.discover.newtlv.valuehex", FT_BYTES, BASE_NONE, NULL,
0x0, NULL, HFILL }},
/* TAPA discover unknown packet */
{ &hf_tapa_discover_unknown,
{ "Tapa unknown packet", "tapa.discover.unknown", FT_BYTES, BASE_NONE, NULL,
0x0, NULL, HFILL }},
/* TAPA discover unknown packet */
{ &hf_tapa_discover_unknown,
{ "Tapa unknown packet", "tapa.discover.unknown", FT_BYTES, BASE_NONE, NULL,
0x0, NULL, HFILL }},
/* TAPA tunnel */
{ &hf_tapa_tunnel_version,
{ "Tapa tunnel version", "tapa.tunnel.version", FT_UINT8, BASE_HEX, NULL,
0xF0, NULL, HFILL }},
/* TAPA tunnel */
{ &hf_tapa_tunnel_version,
{ "Tapa tunnel version", "tapa.tunnel.version", FT_UINT8, BASE_HEX, NULL,
0xF0, NULL, HFILL }},
{ &hf_tapa_tunnel_five,
{ "Tapa tunnel five", "tapa.tunnel.five", FT_UINT8, BASE_HEX, NULL,
0x0F, NULL, HFILL }},
{ &hf_tapa_tunnel_five,
{ "Tapa tunnel five", "tapa.tunnel.five", FT_UINT8, BASE_HEX, NULL,
0x0F, NULL, HFILL }},
{ &hf_tapa_tunnel_type,
{ "Tapa tunnel type", "tapa.tunnel.type", FT_UINT8, BASE_HEX, VALS(tapa_tunnel_type_vals),
0x0, NULL, HFILL }},
{ &hf_tapa_tunnel_type,
{ "Tapa tunnel type", "tapa.tunnel.type", FT_UINT8, BASE_HEX, VALS(tapa_tunnel_type_vals),
0x0, NULL, HFILL }},
{ &hf_tapa_tunnel_zero,
{ "Tapa tunnel zeroes", "tapa.tunnel.zero", FT_BYTES, BASE_NONE, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_tunnel_zero,
{ "Tapa tunnel zeroes", "tapa.tunnel.zero", FT_BYTES, BASE_NONE, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_tunnel_dmac,
{ "Tapa tunnel dest mac", "tapa.tunnel.dmac", FT_ETHER, BASE_NONE, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_tunnel_dmac,
{ "Tapa tunnel dest mac", "tapa.tunnel.dmac", FT_ETHER, BASE_NONE, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_tunnel_smac,
{ "Tapa tunnel src mac", "tapa.tunnel.smac", FT_ETHER, BASE_NONE, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_tunnel_smac,
{ "Tapa tunnel src mac", "tapa.tunnel.smac", FT_ETHER, BASE_NONE, NULL,
0x0, NULL, HFILL }},
/* TAPA tunnel type 0 */
{ &hf_tapa_tunnel_0804,
{ "Tapa tunnel 0804", "tapa.tunnel.0804", FT_UINT16, BASE_HEX, NULL,
0x0, NULL, HFILL }},
/* TAPA tunnel type 0 */
{ &hf_tapa_tunnel_0804,
{ "Tapa tunnel 0804", "tapa.tunnel.0804", FT_UINT16, BASE_HEX, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_tunnel_tagsetc,
{ "Tapa tunnel tags, seqno, pad", "tapa.tunnel.tags", FT_BYTES, BASE_NONE, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_tunnel_tagsetc,
{ "Tapa tunnel tags, seqno, pad", "tapa.tunnel.tags", FT_BYTES, BASE_NONE, NULL,
0x0, NULL, HFILL }},
/* TAPA tunnel type 1 */
{ &hf_tapa_tunnel_seqno,
{ "Tapa tunnel seqno", "tapa.tunnel.seqno", FT_UINT16, BASE_DEC, NULL,
0x0, NULL, HFILL }},
/* TAPA tunnel type 1 */
{ &hf_tapa_tunnel_seqno,
{ "Tapa tunnel seqno", "tapa.tunnel.seqno", FT_UINT16, BASE_DEC, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_tunnel_length,
{ "Tapa tunnel length", "tapa.tunnel.length", FT_UINT16, BASE_DEC, NULL,
0x0, NULL, HFILL }},
{ &hf_tapa_tunnel_length,
{ "Tapa tunnel length", "tapa.tunnel.length", FT_UINT16, BASE_DEC, NULL,
0x0, NULL, HFILL }},
/* TAPA tunnel remaining stuff */
{ &hf_tapa_tunnel_remaining,
{ "Tapa tunnel all data", "tapa.tunnel.remaining", FT_BYTES, BASE_NONE, NULL,
0x0, NULL, HFILL }},
/* TAPA tunnel remaining stuff */
{ &hf_tapa_tunnel_remaining,
{ "Tapa tunnel all data", "tapa.tunnel.remaining", FT_BYTES, BASE_NONE, NULL,
0x0, NULL, HFILL }},
};
};
static gint *ett[] = {
&ett_tapa_discover,
&ett_tapa_discover_req,
&ett_tapa_tunnel,
};
proto_tapa = proto_register_protocol(PROTO_LONG_NAME, PROTO_SHORT_NAME, "tapa");
proto_register_field_array(proto_tapa, hf, array_length(hf));
proto_tapa = proto_register_protocol(PROTO_LONG_NAME, PROTO_SHORT_NAME, "tapa");
proto_register_field_array(proto_tapa, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
new_register_dissector("tapa", dissect_tapa_static, proto_tapa);
@ -628,6 +628,18 @@ proto_reg_handoff_tapa(void)
tapa_handle = find_dissector("tapa");
dissector_add_uint("udp.port", PORT_TAPA, tapa_handle);
heur_dissector_add( "ip", dissect_tapa_heur, proto_tapa);
heur_dissector_add( "ip", dissect_tapa_heur, proto_tapa);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -423,3 +423,15 @@ proto_reg_handoff_teredo(void)
heur_dissector_add("udp", dissect_teredo_heur, proto_teredo);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -175,43 +175,55 @@ proto_reg_handoff_tsp(void)
void
proto_register_tsp(void)
{
static hf_register_info hf[] = {
{ &hf_tsp_type,
{ "Type", "tsp.type",
FT_UINT8, BASE_DEC, VALS(names_tsp_type), 0x0,
"Packet Type", HFILL }},
{ &hf_tsp_vers,
{ "Version", "tsp.version",
FT_UINT8, BASE_DEC, NULL, 0x0,
"Protocol Version Number", HFILL }},
{ &hf_tsp_seq,
{ "Sequence", "tsp.sequence",
FT_UINT16, BASE_DEC, NULL, 0x0,
"Sequence Number", HFILL }},
{ &hf_tsp_hopcnt,
{ "Hop Count", "tsp.hopcnt",
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
{ &hf_tsp_time_sec,
{ "Seconds", "tsp.sec",
FT_UINT32, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
{ &hf_tsp_time_usec,
{ "Microseconds", "tsp.usec",
FT_UINT32, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
{ &hf_tsp_name,
{ "Machine Name", "tsp.name",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Sender Machine Name", HFILL }}
};
static hf_register_info hf[] = {
{ &hf_tsp_type,
{ "Type", "tsp.type",
FT_UINT8, BASE_DEC, VALS(names_tsp_type), 0x0,
"Packet Type", HFILL }},
{ &hf_tsp_vers,
{ "Version", "tsp.version",
FT_UINT8, BASE_DEC, NULL, 0x0,
"Protocol Version Number", HFILL }},
{ &hf_tsp_seq,
{ "Sequence", "tsp.sequence",
FT_UINT16, BASE_DEC, NULL, 0x0,
"Sequence Number", HFILL }},
{ &hf_tsp_hopcnt,
{ "Hop Count", "tsp.hopcnt",
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
{ &hf_tsp_time_sec,
{ "Seconds", "tsp.sec",
FT_UINT32, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
{ &hf_tsp_time_usec,
{ "Microseconds", "tsp.usec",
FT_UINT32, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
{ &hf_tsp_name,
{ "Machine Name", "tsp.name",
FT_STRINGZ, BASE_NONE, NULL, 0x0,
"Sender Machine Name", HFILL }}
};
static gint *ett[] = {
&ett_tsp
};
proto_tsp = proto_register_protocol("Time Synchronization Protocol",
"TSP", "tsp");
"TSP", "tsp");
proto_register_field_array(proto_tsp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -43,7 +43,7 @@
#include <epan/oui.h>
#define TURBOCELL_TYPE_BEACON_NON_POLLING 0x00
#define TURBOCELL_TYPE_BEACON_NORMAL 0x40
#define TURBOCELL_TYPE_BEACON_NORMAL 0x40
#define TURBOCELL_TYPE_BEACON_POLLING 0x80
#define TURBOCELL_TYPE_BEACON_ISP 0xA0
@ -168,77 +168,77 @@ static void dissect_turbocell(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
}
remaining_length=tvb_length_remaining(tvb, 0x14);
remaining_length=tvb_length_remaining(tvb, 0x14);
if (remaining_length > 6) {
if (remaining_length > 6) {
/* If the first character is a printable character that means we have a payload with network info */
/* I couldn't find anything in the header that would definitvely indicate if payload is either data or network info */
/* Since the frame size is limited this should work ok */
/* If the first character is a printable character that means we have a payload with network info */
/* I couldn't find anything in the header that would definitvely indicate if payload is either data or network info */
/* Since the frame size is limited this should work ok */
if (tvb_get_guint8(tvb, 0x14)>=0x20){
name_item = proto_tree_add_item(turbocell_tree, hf_turbocell_name, tvb, 0x14, 30, ENC_ASCII|ENC_NA);
network_tree = proto_item_add_subtree(name_item, ett_network);
if (tvb_get_guint8(tvb, 0x14)>=0x20){
name_item = proto_tree_add_item(turbocell_tree, hf_turbocell_name, tvb, 0x14, 30, ENC_ASCII|ENC_NA);
network_tree = proto_item_add_subtree(name_item, ett_network);
str_name=tvb_get_stringz_enc(wmem_packet_scope(), tvb, 0x14, &str_len, ENC_ASCII);
col_append_fstr(pinfo->cinfo, COL_INFO, ", Network=\"%s\"",format_text(str_name, str_len-1));
str_name=tvb_get_stringz_enc(wmem_packet_scope(), tvb, 0x14, &str_len, ENC_ASCII);
col_append_fstr(pinfo->cinfo, COL_INFO, ", Network=\"%s\"",format_text(str_name, str_len-1));
while(tvb_get_guint8(tvb, 0x34 + 8*i)==0x00 && (tvb_length_remaining(tvb,0x34 + 8*i) > 6) && (i<32)) {
proto_tree_add_item(network_tree, hf_turbocell_station[i], tvb, 0x34+8*i, 6, ENC_NA);
i++;
}
while(tvb_get_guint8(tvb, 0x34 + 8*i)==0x00 && (tvb_length_remaining(tvb,0x34 + 8*i) > 6) && (i<32)) {
proto_tree_add_item(network_tree, hf_turbocell_station[i], tvb, 0x34+8*i, 6, ENC_NA);
i++;
}
/*Couldn't make sense of the apparently random data in the end*/
/*Couldn't make sense of the apparently random data in the end*/
next_tvb = tvb_new_subset_remaining(tvb, 0x34 + 8*i);
next_tvb = tvb_new_subset_remaining(tvb, 0x34 + 8*i);
call_dissector(data_handle, next_tvb, pinfo, tree);
} else {
tvbuff_t *volatile msdu_tvb = NULL;
guint32 msdu_offset = 0x04;
guint16 j = 1;
guint16 msdu_length;
proto_item *parent_item;
proto_tree *mpdu_tree;
proto_tree *subframe_tree;
next_tvb = tvb_new_subset(tvb, 0x14, -1, tvb_get_ntohs(tvb, 0x14));
parent_item = proto_tree_add_protocol_format(tree, proto_aggregate, next_tvb, 0,
tvb_reported_length_remaining(next_tvb, 0), "Turbocell Aggregate Frames");
mpdu_tree = proto_item_add_subtree(parent_item, ett_msdu_aggregation_parent_tree);
proto_tree_add_item(mpdu_tree, hf_turbocell_aggregate_len, next_tvb, 0x00, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(mpdu_tree, hf_turbocell_aggregate_unknown1, next_tvb, 0x02, 2, ENC_BIG_ENDIAN);
remaining_length=tvb_length_remaining(next_tvb, msdu_offset);
do {
msdu_length = (tvb_get_letohs(next_tvb, msdu_offset) & 0x0FFF);
if (msdu_length==0) break;
parent_item = proto_tree_add_uint_format(mpdu_tree, hf_turbocell_aggregate_msdu_header_text,
next_tvb,msdu_offset, msdu_length + 0x02,j, "A-MSDU Subframe #%u", j);
subframe_tree = proto_item_add_subtree(parent_item, ett_msdu_aggregation_subframe_tree);
j++;
proto_tree_add_item(subframe_tree, hf_turbocell_aggregate_msdu_len, next_tvb, msdu_offset, 2, ENC_LITTLE_ENDIAN);
proto_tree_add_item(subframe_tree, hf_turbocell_aggregate_unknown2, next_tvb, msdu_offset+1, 1, ENC_BIG_ENDIAN);
msdu_offset += 0x02;
remaining_length -= 0x02;
msdu_tvb = tvb_new_subset(next_tvb, msdu_offset, (msdu_length>remaining_length)?remaining_length:msdu_length, msdu_length);
call_dissector(eth_handle, msdu_tvb, pinfo, subframe_tree);
msdu_offset += msdu_length;
remaining_length -= msdu_length;
} while (remaining_length > 6);
if (remaining_length > 2) {
next_tvb = tvb_new_subset_remaining(next_tvb, msdu_offset);
call_dissector(data_handle, next_tvb, pinfo, tree);
} else {
tvbuff_t *volatile msdu_tvb = NULL;
guint32 msdu_offset = 0x04;
guint16 j = 1;
guint16 msdu_length;
proto_item *parent_item;
proto_tree *mpdu_tree;
proto_tree *subframe_tree;
next_tvb = tvb_new_subset(tvb, 0x14, -1, tvb_get_ntohs(tvb, 0x14));
parent_item = proto_tree_add_protocol_format(tree, proto_aggregate, next_tvb, 0,
tvb_reported_length_remaining(next_tvb, 0), "Turbocell Aggregate Frames");
mpdu_tree = proto_item_add_subtree(parent_item, ett_msdu_aggregation_parent_tree);
proto_tree_add_item(mpdu_tree, hf_turbocell_aggregate_len, next_tvb, 0x00, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(mpdu_tree, hf_turbocell_aggregate_unknown1, next_tvb, 0x02, 2, ENC_BIG_ENDIAN);
remaining_length=tvb_length_remaining(next_tvb, msdu_offset);
do {
msdu_length = (tvb_get_letohs(next_tvb, msdu_offset) & 0x0FFF);
if (msdu_length==0) break;
parent_item = proto_tree_add_uint_format(mpdu_tree, hf_turbocell_aggregate_msdu_header_text,
next_tvb,msdu_offset, msdu_length + 0x02,j, "A-MSDU Subframe #%u", j);
subframe_tree = proto_item_add_subtree(parent_item, ett_msdu_aggregation_subframe_tree);
j++;
proto_tree_add_item(subframe_tree, hf_turbocell_aggregate_msdu_len, next_tvb, msdu_offset, 2, ENC_LITTLE_ENDIAN);
proto_tree_add_item(subframe_tree, hf_turbocell_aggregate_unknown2, next_tvb, msdu_offset+1, 1, ENC_BIG_ENDIAN);
msdu_offset += 0x02;
remaining_length -= 0x02;
msdu_tvb = tvb_new_subset(next_tvb, msdu_offset, (msdu_length>remaining_length)?remaining_length:msdu_length, msdu_length);
call_dissector(eth_handle, msdu_tvb, pinfo, subframe_tree);
msdu_offset += msdu_length;
remaining_length -= msdu_length;
} while (remaining_length > 6);
if (remaining_length > 2) {
next_tvb = tvb_new_subset_remaining(next_tvb, msdu_offset);
call_dissector(data_handle, next_tvb, pinfo, tree);
}
}
}
}
}
/* Register the protocol with Wireshark */
@ -248,50 +248,50 @@ void proto_register_turbocell(void)
static hf_register_info hf[] = {
{ &hf_turbocell_type,
{ "Packet Type", "turbocell.type",
{ "Packet Type", "turbocell.type",
FT_UINT8, BASE_HEX, VALS(turbocell_type_values), 0,
NULL, HFILL }
},
{ &hf_turbocell_satmode,
{ "Satellite Mode", "turbocell.satmode",
{ "Satellite Mode", "turbocell.satmode",
FT_UINT8, BASE_HEX, VALS(turbocell_satmode_values), 0xF0,
NULL, HFILL }
},
{ &hf_turbocell_nwid,
{ "Network ID", "turbocell.nwid",
{ "Network ID", "turbocell.nwid",
FT_UINT8, BASE_DEC, NULL, 0x0F,
NULL, HFILL }
},
{ &hf_turbocell_counter,
{ "Counter", "turbocell.counter",
{ "Counter", "turbocell.counter",
FT_UINT24, BASE_DEC_HEX, NULL, 0,
"Increments every frame (per station)", HFILL }
},
{ &hf_turbocell_dst,
{ "Destination", "turbocell.dst",
{ "Destination", "turbocell.dst",
FT_ETHER, BASE_NONE, NULL, 0,
"Seems to be the destination", HFILL }
},
{ &hf_turbocell_ip,
{ "IP", "turbocell.ip",
{ "IP", "turbocell.ip",
FT_IPv4, BASE_NONE, NULL, 0,
"IP address of base station ?", HFILL }
},
{ &hf_turbocell_unknown,
{ "Unknown", "turbocell.unknown",
{ "Unknown", "turbocell.unknown",
FT_UINT16, BASE_HEX, NULL, 0,
"Always 0000", HFILL }
},
{ &hf_turbocell_timestamp,
{ "Timestamp (in 10 ms)", "turbocell.timestamp",
{ "Timestamp (in 10 ms)", "turbocell.timestamp",
FT_UINT24, BASE_DEC_HEX, NULL, 0,
"Timestamp per station (since connection?)", HFILL }
},
{ &hf_turbocell_name,
{ "Network Name", "turbocell.name",
{ "Network Name", "turbocell.name",
FT_STRINGZ, BASE_NONE, NULL, 0,
NULL, HFILL }
},
@ -301,31 +301,31 @@ void proto_register_turbocell(void)
STATION(30),STATION(31)
};
static hf_register_info aggregate_fields[] = {
static hf_register_info aggregate_fields[] = {
{ &hf_turbocell_aggregate_msdu_header_text,
{"MAC Service Data Unit (MSDU)", "turbocell_aggregate.msduheader",
FT_UINT16, BASE_DEC, 0, 0x0000, NULL, HFILL }
{"MAC Service Data Unit (MSDU)", "turbocell_aggregate.msduheader",
FT_UINT16, BASE_DEC, 0, 0x0000, NULL, HFILL }
},
{ &hf_turbocell_aggregate_msdu_len,
{"MSDU length", "turbocell_aggregate.msdulen",
FT_UINT16, BASE_DEC_HEX, 0, 0x0FFF, NULL, HFILL }
{"MSDU length", "turbocell_aggregate.msdulen",
FT_UINT16, BASE_DEC_HEX, 0, 0x0FFF, NULL, HFILL }
},
{ &hf_turbocell_aggregate_len,
{ "Total Length", "turbocell_aggregate.len",
{ "Total Length", "turbocell_aggregate.len",
FT_UINT16, BASE_DEC_HEX, NULL, 0,
"Total reported length", HFILL }
},
{ &hf_turbocell_aggregate_unknown1,
{ "Unknown", "turbocell_aggregate.unknown1",
{ "Unknown", "turbocell_aggregate.unknown1",
FT_UINT16, BASE_HEX, NULL, 0,
"Always 0x7856", HFILL }
},
{ &hf_turbocell_aggregate_unknown2,
{ "Unknown", "turbocell_aggregate.unknown2",
{ "Unknown", "turbocell_aggregate.unknown2",
FT_UINT8, BASE_HEX, NULL, 0xF0,
"have the values 0x4,0xC or 0x8", HFILL }
},
};
};
static gint *ett[] = {
&ett_turbocell,
@ -337,7 +337,7 @@ void proto_register_turbocell(void)
proto_turbocell = proto_register_protocol("Turbocell Header", "Turbocell", "turbocell");
proto_aggregate = proto_register_protocol("Turbocell Aggregate Data",
"Turbocell Aggregate Data", "turbocell_aggregate");
"Turbocell Aggregate Data", "turbocell_aggregate");
proto_register_field_array(proto_aggregate, aggregate_fields, array_length(aggregate_fields));
register_dissector("turbocell", dissect_turbocell, proto_turbocell);
@ -354,3 +354,15 @@ void proto_reg_handoff_turbocell(void)
data_handle = find_dissector("data");
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 4
* tab-width: 8
* indent-tabs-mode: nil
* End:
*
* vi: set shiftwidth=4 tabstop=8 expandtab:
* :indentSize=4:tabSize=8:noTabs=true:
*/

View File

@ -350,47 +350,47 @@ static int hf_config_radio_tx_power_adj = -1;
/* ============= copy/paste/modify from value_string.[hc] ============== */
typedef struct _ext_value_string {
guint32 value;
const gchar *strptr;
int* hf_element;
int (*specialfunction)(tvbuff_t *, packet_info *, proto_tree *, guint32,
guint32, const struct _ext_value_string *);
const struct _ext_value_string *evs;
guint32 value;
const gchar *strptr;
int *hf_element;
int (*specialfunction)(tvbuff_t *, packet_info *, proto_tree *, guint32,
guint32, const struct _ext_value_string *);
const struct _ext_value_string *evs;
} ext_value_string;
static const gchar*
static const gchar *
match_strextval_idx(guint32 val, const ext_value_string *vs, gint *idx) {
gint i = 0;
gint i = 0;
if(vs) {
while (vs[i].strptr) {
if (vs[i].value == val) {
if (idx)
*idx = i;
return(vs[i].strptr);
}
i++;
}
}
if(vs) {
while (vs[i].strptr) {
if (vs[i].value == val) {
if (idx)
*idx = i;
return(vs[i].strptr);
}
i++;
}
}
if (idx)
*idx = -1;
return NULL;
*idx = -1;
return NULL;
}
static const gchar*
extval_to_str_idx(guint32 val, const ext_value_string *vs, gint *idx, const char *fmt) {
const gchar *ret;
const gchar *ret;
if (!fmt)
fmt="Unknown";
if (!fmt)
fmt="Unknown";
ret = match_strextval_idx(val, vs, idx);
if (ret != NULL)
return ret;
ret = match_strextval_idx(val, vs, idx);
if (ret != NULL)
return ret;
return wmem_strdup_printf(wmem_packet_scope(), fmt, val);
return wmem_strdup_printf(wmem_packet_scope(), fmt, val);
}
/* ============= end copy/paste/modify ============== */
@ -2113,3 +2113,15 @@ proto_reg_handoff_wassp(void)
ieee80211_handle = find_dissector("wlan_withoutfcs");
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -48,109 +48,109 @@ static dissector_handle_t xyplex_handle;
#define UDP_PORT_XYPLEX 173
#define XYPLEX_REG_OK 0x00
#define XYPLEX_REG_QUEFULL 0x05
#define XYPLEX_REG_OK 0x00
#define XYPLEX_REG_QUEFULL 0x05
static const value_string xyplex_reg_vals[] = {
{ XYPLEX_REG_OK, "OK" },
{ XYPLEX_REG_QUEFULL, "Queue Full" },
{ XYPLEX_REG_OK, "OK" },
{ XYPLEX_REG_QUEFULL, "Queue Full" },
{ 0, NULL }
};
static int
dissect_xyplex(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
proto_tree *xyplex_tree;
proto_item *ti;
conversation_t *conversation;
gint offset = 0;
proto_tree *xyplex_tree;
proto_item *ti;
conversation_t *conversation;
gint offset = 0;
guint8 prototype;
guint8 padding;
guint16 server_port;
guint16 return_port;
guint16 reserved;
guint16 reply;
guint8 prototype;
guint8 padding;
guint16 server_port;
guint16 return_port;
guint16 reserved;
guint16 reply;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "XYPLEX");
col_set_str(pinfo->cinfo, COL_PROTOCOL, "XYPLEX");
ti = proto_tree_add_item(tree, proto_xyplex, tvb, offset, -1, ENC_NA);
xyplex_tree = proto_item_add_subtree(ti, ett_xyplex);
ti = proto_tree_add_item(tree, proto_xyplex, tvb, offset, -1, ENC_NA);
xyplex_tree = proto_item_add_subtree(ti, ett_xyplex);
if (pinfo->destport == UDP_PORT_XYPLEX) {
/* This is a registration request from a Unix server
* to the Xyplex server. The server_port indicates
* which Xyplex serial port is desired. The
* return_port tells the Xyplex server what TCP port
* to open to the Unix server.
*/
prototype = tvb_get_guint8(tvb, offset);
padding = tvb_get_guint8(tvb, offset+1);
server_port = tvb_get_ntohs(tvb, offset+2);
return_port = tvb_get_ntohs(tvb, offset+4);
reserved = tvb_get_ntohs(tvb, offset+6);
col_add_fstr(pinfo->cinfo, COL_INFO,
"Registration Request: %d Return: %d",
server_port, return_port);
if (pinfo->destport == UDP_PORT_XYPLEX) {
/* This is a registration request from a Unix server
* to the Xyplex server. The server_port indicates
* which Xyplex serial port is desired. The
* return_port tells the Xyplex server what TCP port
* to open to the Unix server.
*/
prototype = tvb_get_guint8(tvb, offset);
padding = tvb_get_guint8(tvb, offset+1);
server_port = tvb_get_ntohs(tvb, offset+2);
return_port = tvb_get_ntohs(tvb, offset+4);
reserved = tvb_get_ntohs(tvb, offset+6);
col_add_fstr(pinfo->cinfo, COL_INFO,
"Registration Request: %d Return: %d",
server_port, return_port);
if (tree) {
proto_tree_add_uint(xyplex_tree, hf_xyplex_type, tvb,
offset, 1, prototype);
proto_tree_add_uint(xyplex_tree, hf_xyplex_pad, tvb,
offset+1, 1, padding);
proto_tree_add_uint(xyplex_tree, hf_xyplex_server_port, tvb,
offset+2, 2, server_port);
proto_tree_add_uint(xyplex_tree, hf_xyplex_return_port, tvb,
offset+4, 2, return_port);
proto_tree_add_uint(xyplex_tree, hf_xyplex_reserved, tvb,
offset+6, 2, reserved);
}
offset += 8;
if (tree) {
proto_tree_add_uint(xyplex_tree, hf_xyplex_type, tvb,
offset, 1, prototype);
proto_tree_add_uint(xyplex_tree, hf_xyplex_pad, tvb,
offset+1, 1, padding);
proto_tree_add_uint(xyplex_tree, hf_xyplex_server_port, tvb,
offset+2, 2, server_port);
proto_tree_add_uint(xyplex_tree, hf_xyplex_return_port, tvb,
offset+4, 2, return_port);
proto_tree_add_uint(xyplex_tree, hf_xyplex_reserved, tvb,
offset+6, 2, reserved);
}
offset += 8;
/* Look for all future TCP conversations between the
* requestiong server and the Xyplex host using the
* return_port.
*/
conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
PT_TCP, return_port, 0, NO_PORT_B);
if (conversation == NULL) {
conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
PT_TCP, return_port, 0, NO_PORT2);
conversation_set_dissector(conversation, xyplex_handle);
}
return offset;
}
/* Look for all future TCP conversations between the
* requestiong server and the Xyplex host using the
* return_port.
*/
conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
PT_TCP, return_port, 0, NO_PORT_B);
if (conversation == NULL) {
conversation = conversation_new(pinfo->fd->num, &pinfo->src, &pinfo->dst,
PT_TCP, return_port, 0, NO_PORT2);
conversation_set_dissector(conversation, xyplex_handle);
}
return offset;
}
if (pinfo->srcport == UDP_PORT_XYPLEX) {
prototype = tvb_get_guint8(tvb, offset);
padding = tvb_get_guint8(tvb, offset+1);
reply = tvb_get_ntohs(tvb, offset+2);
col_add_fstr(pinfo->cinfo, COL_INFO, "Registration Reply: %s",
val_to_str(reply, xyplex_reg_vals, "Unknown (0x%02x)"));
if (pinfo->srcport == UDP_PORT_XYPLEX) {
prototype = tvb_get_guint8(tvb, offset);
padding = tvb_get_guint8(tvb, offset+1);
reply = tvb_get_ntohs(tvb, offset+2);
col_add_fstr(pinfo->cinfo, COL_INFO, "Registration Reply: %s",
val_to_str(reply, xyplex_reg_vals, "Unknown (0x%02x)"));
if (tree) {
proto_tree_add_uint(xyplex_tree, hf_xyplex_type, tvb,
offset, 1, prototype);
proto_tree_add_uint(xyplex_tree, hf_xyplex_pad, tvb,
offset+1, 1, padding);
proto_tree_add_uint(xyplex_tree, hf_xyplex_reply, tvb,
offset+2, 2, reply);
}
offset += 4;
return offset;
}
if (tree) {
proto_tree_add_uint(xyplex_tree, hf_xyplex_type, tvb,
offset, 1, prototype);
proto_tree_add_uint(xyplex_tree, hf_xyplex_pad, tvb,
offset+1, 1, padding);
proto_tree_add_uint(xyplex_tree, hf_xyplex_reply, tvb,
offset+2, 2, reply);
}
offset += 4;
return offset;
}
/*
* This must be the TCP data stream. This will just be
* the raw data being transfered from the remote server
* and the Xyplex serial port.
*/
col_add_fstr(pinfo->cinfo, COL_INFO, "%d > %d Data",
pinfo->srcport, pinfo->destport);
/*
* This must be the TCP data stream. This will just be
* the raw data being transfered from the remote server
* and the Xyplex serial port.
*/
col_add_fstr(pinfo->cinfo, COL_INFO, "%d > %d Data",
pinfo->srcport, pinfo->destport);
proto_tree_add_item(xyplex_tree, hf_xyplex_data, tvb, offset, -1, ENC_NA);
proto_tree_add_item(xyplex_tree, hf_xyplex_data, tvb, offset, -1, ENC_NA);
return tvb_reported_length_remaining(tvb, offset);
return tvb_reported_length_remaining(tvb, offset);
}
@ -159,39 +159,39 @@ proto_register_xyplex(void)
{
static hf_register_info hf[] = {
{ &hf_xyplex_type,
{ "Type", "xyplex.type",
FT_UINT8, BASE_DEC, NULL, 0x0,
"Protocol type", HFILL }},
{ "Type", "xyplex.type",
FT_UINT8, BASE_DEC, NULL, 0x0,
"Protocol type", HFILL }},
{ &hf_xyplex_pad,
{ "Pad", "xyplex.pad",
FT_UINT8, BASE_DEC, NULL, 0x0,
"Padding", HFILL }},
{ "Pad", "xyplex.pad",
FT_UINT8, BASE_DEC, NULL, 0x0,
"Padding", HFILL }},
{ &hf_xyplex_server_port,
{ "Server Port", "xyplex.server_port",
FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
{ "Server Port", "xyplex.server_port",
FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
{ &hf_xyplex_return_port,
{ "Return Port", "xyplex.return_port",
FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
{ &hf_xyplex_reserved,
{ "Reserved field", "xyplex.reserved",
FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
{ &hf_xyplex_reply,
{ "Registration Reply", "xyplex.reply",
FT_UINT16, BASE_DEC, VALS(xyplex_reg_vals), 0x0,
NULL, HFILL }},
FT_UINT16, BASE_DEC, VALS(xyplex_reg_vals), 0x0,
NULL, HFILL }},
{ &hf_xyplex_data,
{ "Data", "xyplex.data",
FT_BYTES, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
FT_BYTES, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
};
static gint *ett[] = {
@ -210,3 +210,15 @@ proto_reg_handoff_xyplex(void)
dissector_add_uint("udp.port", UDP_PORT_XYPLEX, xyplex_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local Variables:
* c-basic-offset: 2
* tab-width: 8
* indent-tabs-mode: nil
* End:
*
* ex: set shiftwidth=2 tabstop=8 expandtab:
* :indentSize=2:tabSize=8:noTabs=true:
*/

View File

@ -621,3 +621,15 @@ proto_reg_handoff_yami(void)
dissector_add_uint("udp.port", yami_udp_port, yami_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/

View File

@ -170,3 +170,15 @@ proto_reg_handoff_yppasswd(void)
rpc_init_proc_table(YPPASSWD_PROGRAM, 1, yppasswd1_proc, hf_yppasswd_procedure_v1);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 8
* tab-width: 8
* indent-tabs-mode: t
* End:
*
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
* :indentSize=8:tabSize=8:noTabs=false:
*/