diff options
Diffstat (limited to 'epan/dissectors/packet-lbtrm.c')
-rw-r--r-- | epan/dissectors/packet-lbtrm.c | 213 |
1 files changed, 107 insertions, 106 deletions
diff --git a/epan/dissectors/packet-lbtrm.c b/epan/dissectors/packet-lbtrm.c index 55e715af0d..928dd91e67 100644 --- a/epan/dissectors/packet-lbtrm.c +++ b/epan/dissectors/packet-lbtrm.c @@ -27,7 +27,7 @@ void proto_register_lbtrm(void); void proto_reg_handoff_lbtrm(void); /* Protocol handle */ -static int proto_lbtrm = -1; +static int proto_lbtrm; /* Dissector handle */ static dissector_handle_t lbtrm_dissector_handle; @@ -47,7 +47,7 @@ static lbtrm_transport_t * lbtrm_transport_unicast_find(const address * source_a conversation_t * conv = NULL; wmem_tree_t * session_tree = NULL; - conv = find_conversation(frame, source_address, &lbtrm_null_address, ENDPOINT_UDP, source_port, 0, 0); + conv = find_conversation(frame, source_address, &lbtrm_null_address, CONVERSATION_UDP, source_port, 0, 0); if (conv != NULL) { if (frame > conv->last_frame) @@ -69,10 +69,10 @@ static void lbtrm_transport_unicast_add(const address * source_address, guint16 wmem_tree_t * session_tree = NULL; lbtrm_transport_t * transport_entry = NULL; - conv = find_conversation(frame, source_address, &lbtrm_null_address, ENDPOINT_UDP, source_port, 0, 0); + conv = find_conversation(frame, source_address, &lbtrm_null_address, CONVERSATION_UDP, source_port, 0, 0); if (conv == NULL) { - conv = conversation_new(frame, source_address, &lbtrm_null_address, ENDPOINT_UDP, source_port, 0, 0); + conv = conversation_new(frame, source_address, &lbtrm_null_address, CONVERSATION_UDP, source_port, 0, 0); } session_tree = (wmem_tree_t *) conversation_get_proto_data(conv, proto_lbtrm); if (session_tree == NULL) @@ -93,7 +93,7 @@ static lbtrm_transport_t * lbtrm_transport_find(const address * source_address, wmem_tree_t * session_tree = NULL; conversation_t * conv = NULL; - conv = find_conversation(frame, source_address, multicast_group, ENDPOINT_UDP, source_port, dest_port, 0); + conv = find_conversation(frame, source_address, multicast_group, CONVERSATION_UDP, source_port, dest_port, 0); if (conv != NULL) { if (frame > conv->last_frame) @@ -115,10 +115,10 @@ lbtrm_transport_t * lbtrm_transport_add(const address * source_address, guint16 conversation_t * conv = NULL; wmem_tree_t * session_tree = NULL; - conv = find_conversation(frame, source_address, multicast_group, ENDPOINT_UDP, source_port, dest_port, 0); + conv = find_conversation(frame, source_address, multicast_group, CONVERSATION_UDP, source_port, dest_port, 0); if (conv == NULL) { - conv = conversation_new(frame, source_address, multicast_group, ENDPOINT_UDP, source_port, dest_port, 0); + conv = conversation_new(frame, source_address, multicast_group, CONVERSATION_UDP, source_port, dest_port, 0); } if (frame > conv->last_frame) { @@ -328,7 +328,7 @@ static lbm_transport_frame_t * lbtrm_transport_frame_add(lbtrm_transport_t * tra static char * lbtrm_transport_source_string_format(wmem_allocator_t *pool, const address * source_address, guint16 source_port, guint32 session_id, const address * multicast_group, guint16 dest_port) { /* Returns a packet-scoped string. */ - return (wmem_strdup_printf(pool, "LBTRM:%s:%" G_GUINT16_FORMAT ":%08x:%s:%" G_GUINT16_FORMAT, address_to_str(pool, source_address), source_port, session_id, + return (wmem_strdup_printf(pool, "LBTRM:%s:%" PRIu16 ":%08x:%s:%" PRIu16, address_to_str(pool, source_address), source_port, session_id, address_to_str(pool, multicast_group), dest_port)); } @@ -633,7 +633,7 @@ static uat_field_t lbtrm_tag_array[] = /*----------------------------------------------------------------------------*/ /* UAT callback functions. */ /*----------------------------------------------------------------------------*/ -static gboolean lbtrm_tag_update_cb(void * record, char * * error_string) +static bool lbtrm_tag_update_cb(void * record, char * * error_string) { lbtrm_tag_entry_t * tag = (lbtrm_tag_entry_t *)record; @@ -770,93 +770,93 @@ static char * lbtrm_tag_find(packet_info * pinfo) /*----------------------------------------------------------------------------*/ /* Dissector tree handles */ -static gint ett_lbtrm = -1; -static gint ett_lbtrm_hdr = -1; -static gint ett_lbtrm_data = -1; -static gint ett_lbtrm_data_flags_fec_type = -1; -static gint ett_lbtrm_sm = -1; -static gint ett_lbtrm_sm_flags_fec_type = -1; -static gint ett_lbtrm_nak = -1; -static gint ett_lbtrm_nak_list = -1; -static gint ett_lbtrm_ncf = -1; -static gint ett_lbtrm_ncf_list = -1; -static gint ett_lbtrm_transport = -1; -static gint ett_lbtrm_transport_sqn = -1; +static gint ett_lbtrm; +static gint ett_lbtrm_hdr; +static gint ett_lbtrm_data; +static gint ett_lbtrm_data_flags_fec_type; +static gint ett_lbtrm_sm; +static gint ett_lbtrm_sm_flags_fec_type; +static gint ett_lbtrm_nak; +static gint ett_lbtrm_nak_list; +static gint ett_lbtrm_ncf; +static gint ett_lbtrm_ncf_list; +static gint ett_lbtrm_transport; +static gint ett_lbtrm_transport_sqn; /* Dissector field handles */ -static int hf_lbtrm_channel = -1; -static int hf_lbtrm_tag = -1; -static int hf_lbtrm_hdr = -1; -static int hf_lbtrm_hdr_ver = -1; -static int hf_lbtrm_hdr_type = -1; -static int hf_lbtrm_hdr_next_hdr = -1; -static int hf_lbtrm_hdr_ucast_port = -1; -static int hf_lbtrm_hdr_session_id = -1; -static int hf_lbtrm_data = -1; -static int hf_lbtrm_data_sqn = -1; -static int hf_lbtrm_data_trail_sqn = -1; -static int hf_lbtrm_data_flags_fec_type = -1; -static int hf_lbtrm_data_flags_fec_type_ucast_naks = -1; -static int hf_lbtrm_data_flags_fec_type_rx = -1; -static int hf_lbtrm_data_flags_tgsz = -1; -static int hf_lbtrm_data_fec_symbol = -1; -static int hf_lbtrm_sm = -1; -static int hf_lbtrm_sm_sm_sqn = -1; -static int hf_lbtrm_sm_lead_sqn = -1; -static int hf_lbtrm_sm_trail_sqn = -1; -static int hf_lbtrm_sm_flags_fec_type = -1; -static int hf_lbtrm_sm_flags_fec_type_ucast_naks = -1; -static int hf_lbtrm_sm_flags_tgsz = -1; -static int hf_lbtrm_sm_reserved = -1; -static int hf_lbtrm_nak = -1; -static int hf_lbtrm_nak_num_naks = -1; -static int hf_lbtrm_nak_format = -1; -static int hf_lbtrm_nak_list = -1; -static int hf_lbtrm_nak_list_nak = -1; -static int hf_lbtrm_ncf = -1; -static int hf_lbtrm_ncf_trail_sqn = -1; -static int hf_lbtrm_ncf_num_ncfs = -1; -static int hf_lbtrm_ncf_reserved = -1; -static int hf_lbtrm_ncf_reason = -1; -static int hf_lbtrm_ncf_format = -1; -static int hf_lbtrm_ncf_list = -1; -static int hf_lbtrm_ncf_list_ncf = -1; -static int hf_lbtrm_analysis = -1; -static int hf_lbtrm_analysis_prev_frame = -1; -static int hf_lbtrm_analysis_prev_data_frame = -1; -static int hf_lbtrm_analysis_prev_sm_frame = -1; -static int hf_lbtrm_analysis_prev_nak_frame = -1; -static int hf_lbtrm_analysis_prev_ncf_frame = -1; -static int hf_lbtrm_analysis_next_frame = -1; -static int hf_lbtrm_analysis_next_data_frame = -1; -static int hf_lbtrm_analysis_next_sm_frame = -1; -static int hf_lbtrm_analysis_next_nak_frame = -1; -static int hf_lbtrm_analysis_next_ncf_frame = -1; -static int hf_lbtrm_analysis_sqn = -1; -static int hf_lbtrm_analysis_sqn_frame = -1; -static int hf_lbtrm_analysis_data_retransmission = -1; -static int hf_lbtrm_analysis_data_sqn_gap = -1; -static int hf_lbtrm_analysis_data_ooo_gap = -1; -static int hf_lbtrm_analysis_data_duplicate = -1; -static int hf_lbtrm_analysis_sm_sqn_gap = -1; -static int hf_lbtrm_analysis_sm_ooo_gap = -1; -static int hf_lbtrm_analysis_sm_duplicate = -1; +static int hf_lbtrm_channel; +static int hf_lbtrm_tag; +static int hf_lbtrm_hdr; +static int hf_lbtrm_hdr_ver; +static int hf_lbtrm_hdr_type; +static int hf_lbtrm_hdr_next_hdr; +static int hf_lbtrm_hdr_ucast_port; +static int hf_lbtrm_hdr_session_id; +static int hf_lbtrm_data; +static int hf_lbtrm_data_sqn; +static int hf_lbtrm_data_trail_sqn; +static int hf_lbtrm_data_flags_fec_type; +static int hf_lbtrm_data_flags_fec_type_ucast_naks; +static int hf_lbtrm_data_flags_fec_type_rx; +static int hf_lbtrm_data_flags_tgsz; +static int hf_lbtrm_data_fec_symbol; +static int hf_lbtrm_sm; +static int hf_lbtrm_sm_sm_sqn; +static int hf_lbtrm_sm_lead_sqn; +static int hf_lbtrm_sm_trail_sqn; +static int hf_lbtrm_sm_flags_fec_type; +static int hf_lbtrm_sm_flags_fec_type_ucast_naks; +static int hf_lbtrm_sm_flags_tgsz; +static int hf_lbtrm_sm_reserved; +static int hf_lbtrm_nak; +static int hf_lbtrm_nak_num_naks; +static int hf_lbtrm_nak_format; +static int hf_lbtrm_nak_list; +static int hf_lbtrm_nak_list_nak; +static int hf_lbtrm_ncf; +static int hf_lbtrm_ncf_trail_sqn; +static int hf_lbtrm_ncf_num_ncfs; +static int hf_lbtrm_ncf_reserved; +static int hf_lbtrm_ncf_reason; +static int hf_lbtrm_ncf_format; +static int hf_lbtrm_ncf_list; +static int hf_lbtrm_ncf_list_ncf; +static int hf_lbtrm_analysis; +static int hf_lbtrm_analysis_prev_frame; +static int hf_lbtrm_analysis_prev_data_frame; +static int hf_lbtrm_analysis_prev_sm_frame; +static int hf_lbtrm_analysis_prev_nak_frame; +static int hf_lbtrm_analysis_prev_ncf_frame; +static int hf_lbtrm_analysis_next_frame; +static int hf_lbtrm_analysis_next_data_frame; +static int hf_lbtrm_analysis_next_sm_frame; +static int hf_lbtrm_analysis_next_nak_frame; +static int hf_lbtrm_analysis_next_ncf_frame; +static int hf_lbtrm_analysis_sqn; +static int hf_lbtrm_analysis_sqn_frame; +static int hf_lbtrm_analysis_data_retransmission; +static int hf_lbtrm_analysis_data_sqn_gap; +static int hf_lbtrm_analysis_data_ooo_gap; +static int hf_lbtrm_analysis_data_duplicate; +static int hf_lbtrm_analysis_sm_sqn_gap; +static int hf_lbtrm_analysis_sm_ooo_gap; +static int hf_lbtrm_analysis_sm_duplicate; /* Expert info handles */ -static expert_field ei_lbtrm_analysis_ncf = EI_INIT; -static expert_field ei_lbtrm_analysis_ncf_ncf = EI_INIT; -static expert_field ei_lbtrm_analysis_nak = EI_INIT; -static expert_field ei_lbtrm_analysis_nak_nak = EI_INIT; -static expert_field ei_lbtrm_analysis_sm = EI_INIT; -static expert_field ei_lbtrm_analysis_rx = EI_INIT; -static expert_field ei_lbtrm_analysis_invalid_value = EI_INIT; -static expert_field ei_lbtrm_analysis_data_rx = EI_INIT; -static expert_field ei_lbtrm_analysis_data_gap = EI_INIT; -static expert_field ei_lbtrm_analysis_data_ooo = EI_INIT; -static expert_field ei_lbtrm_analysis_data_dup = EI_INIT; -static expert_field ei_lbtrm_analysis_sm_gap = EI_INIT; -static expert_field ei_lbtrm_analysis_sm_ooo = EI_INIT; -static expert_field ei_lbtrm_analysis_sm_dup = EI_INIT; +static expert_field ei_lbtrm_analysis_ncf; +static expert_field ei_lbtrm_analysis_ncf_ncf; +static expert_field ei_lbtrm_analysis_nak; +static expert_field ei_lbtrm_analysis_nak_nak; +static expert_field ei_lbtrm_analysis_sm; +static expert_field ei_lbtrm_analysis_rx; +static expert_field ei_lbtrm_analysis_invalid_value; +static expert_field ei_lbtrm_analysis_data_rx; +static expert_field ei_lbtrm_analysis_data_gap; +static expert_field ei_lbtrm_analysis_data_ooo; +static expert_field ei_lbtrm_analysis_data_dup; +static expert_field ei_lbtrm_analysis_sm_gap; +static expert_field ei_lbtrm_analysis_sm_ooo; +static expert_field ei_lbtrm_analysis_sm_dup; /*----------------------------------------------------------------------------*/ /* LBT-RM data payload dissection functions. */ @@ -1072,7 +1072,7 @@ typedef struct guint32 current_frame; } lbtrm_sqn_frame_list_callback_data_t; -static gboolean dissect_lbtrm_sqn_frame_list_callback(const void *key _U_, void * frame, void * user_data) +static bool dissect_lbtrm_sqn_frame_list_callback(const void *key _U_, void * frame, void * user_data) { lbtrm_sqn_frame_list_callback_data_t * cb_data = (lbtrm_sqn_frame_list_callback_data_t *) user_data; proto_item * transport_item = NULL; @@ -1082,7 +1082,7 @@ static gboolean dissect_lbtrm_sqn_frame_list_callback(const void *key _U_, void { if (sqn_frame->retransmission) { - transport_item = proto_tree_add_uint_format_value(cb_data->tree, hf_lbtrm_analysis_sqn_frame, cb_data->tvb, 0, 0, sqn_frame->frame, "%" G_GUINT32_FORMAT " (RX)", sqn_frame->frame); + transport_item = proto_tree_add_uint_format_value(cb_data->tree, hf_lbtrm_analysis_sqn_frame, cb_data->tvb, 0, 0, sqn_frame->frame, "%" PRIu32 " (RX)", sqn_frame->frame); } else { @@ -1140,13 +1140,13 @@ static int dissect_lbtrm(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, session_id = tvb_get_ntohl(tvb, O_LBTRM_HDR_T_SESSION_ID); if (tag_name != NULL) { - lbtrm_item = proto_tree_add_protocol_format(tree, proto_lbtrm, tvb, offset, -1, "LBT-RM Protocol (Tag: %s): Version %u, Type %s: Source Unicast Port %" G_GUINT16_FORMAT ", Session ID 0x%08x", + lbtrm_item = proto_tree_add_protocol_format(tree, proto_lbtrm, tvb, offset, -1, "LBT-RM Protocol (Tag: %s): Version %u, Type %s: Source Unicast Port %" PRIu16 ", Session ID 0x%08x", tag_name, LBTRM_HDR_VER(ver_type), val_to_str(packet_type, lbtrm_packet_type, "Unknown (0x%02x)"), src_port, session_id); } else { - lbtrm_item = proto_tree_add_protocol_format(tree, proto_lbtrm, tvb, offset, -1, "LBT-RM Protocol: Version %u, Type %s: Source Unicast Port %" G_GUINT16_FORMAT ", Session ID 0x%08x", + lbtrm_item = proto_tree_add_protocol_format(tree, proto_lbtrm, tvb, offset, -1, "LBT-RM Protocol: Version %u, Type %s: Source Unicast Port %" PRIu16 ", Session ID 0x%08x", LBTRM_HDR_VER(ver_type), val_to_str(packet_type, lbtrm_packet_type, "Unknown (0x%02x)"), src_port, session_id); } @@ -1213,24 +1213,24 @@ static int dissect_lbtrm(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, flags_fec_type = tvb_get_guint8(tvb, L_LBTRM_HDR_T + O_LBTRM_DATA_HDR_T_FLAGS_FEC_TYPE); if ((flags_fec_type & LBTRM_DATA_RETRANSMISSION_FLAG) != 0) { - col_append_sep_fstr(pinfo->cinfo, COL_INFO, " ", "DATA(RX) sqn 0x%x Port %" G_GUINT16_FORMAT " ID 0x%08x", sequence, src_port, session_id); + col_append_sep_fstr(pinfo->cinfo, COL_INFO, " ", "DATA(RX) sqn 0x%x Port %" PRIu16 " ID 0x%08x", sequence, src_port, session_id); } else { - col_append_sep_fstr(pinfo->cinfo, COL_INFO, " ", "DATA sqn 0x%x Port %" G_GUINT16_FORMAT " ID 0x%08x", sequence, src_port, session_id); + col_append_sep_fstr(pinfo->cinfo, COL_INFO, " ", "DATA sqn 0x%x Port %" PRIu16 " ID 0x%08x", sequence, src_port, session_id); } break; case LBTRM_PACKET_TYPE_SM: sequence = tvb_get_ntohl(tvb, L_LBTRM_HDR_T + O_LBTRM_SM_HDR_T_SM_SQN); - col_append_sep_fstr(pinfo->cinfo, COL_INFO, " ", "SM sqn 0x%x Port %" G_GUINT16_FORMAT " ID 0x%08x", sequence, src_port, session_id); + col_append_sep_fstr(pinfo->cinfo, COL_INFO, " ", "SM sqn 0x%x Port %" PRIu16 " ID 0x%08x", sequence, src_port, session_id); break; case LBTRM_PACKET_TYPE_NAK: num_naks = tvb_get_ntohs(tvb, L_LBTRM_HDR_T + O_LBTRM_NAK_HDR_T_NUM_NAKS); - col_append_sep_fstr(pinfo->cinfo, COL_INFO, " ", "NAK %u naks Port %" G_GUINT16_FORMAT " ID 0x%08x", num_naks, src_port, session_id); + col_append_sep_fstr(pinfo->cinfo, COL_INFO, " ", "NAK %u naks Port %" PRIu16 " ID 0x%08x", num_naks, src_port, session_id); break; case LBTRM_PACKET_TYPE_NCF: num_ncfs = tvb_get_ntohs(tvb, L_LBTRM_HDR_T + O_LBTRM_NCF_HDR_T_NUM_NCFS); - col_append_sep_fstr(pinfo->cinfo, COL_INFO, " ", "NCF %u ncfs Port %" G_GUINT16_FORMAT " ID 0x%08x", num_ncfs, src_port, session_id); + col_append_sep_fstr(pinfo->cinfo, COL_INFO, " ", "NCF %u ncfs Port %" PRIu16 " ID 0x%08x", num_ncfs, src_port, session_id); break; default: col_append_sep_fstr(pinfo->cinfo, COL_INFO, " ", "Unknown (0x%02x)", packet_type); @@ -1352,13 +1352,13 @@ static int dissect_lbtrm(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, { transport_item = proto_tree_add_uint(transport_tree, hf_lbtrm_analysis_data_sqn_gap, tvb, 0, 0, frame->sqn_gap); proto_item_set_generated(transport_item); - expert_add_info_format(pinfo, transport_item, &ei_lbtrm_analysis_data_gap, "Data sequence gap (%" G_GUINT32_FORMAT ")", frame->sqn_gap); + expert_add_info_format(pinfo, transport_item, &ei_lbtrm_analysis_data_gap, "Data sequence gap (%" PRIu32 ")", frame->sqn_gap); } if (frame->ooo_gap != 0) { transport_item = proto_tree_add_uint(transport_tree, hf_lbtrm_analysis_data_ooo_gap, tvb, 0, 0, frame->ooo_gap); proto_item_set_generated(transport_item); - expert_add_info_format(pinfo, transport_item, &ei_lbtrm_analysis_data_ooo, "Data sequence out of order gap (%" G_GUINT32_FORMAT ")", frame->ooo_gap); + expert_add_info_format(pinfo, transport_item, &ei_lbtrm_analysis_data_ooo, "Data sequence out of order gap (%" PRIu32 ")", frame->ooo_gap); } if (frame->duplicate) { @@ -1400,13 +1400,13 @@ static int dissect_lbtrm(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, { transport_item = proto_tree_add_uint(transport_tree, hf_lbtrm_analysis_sm_sqn_gap, tvb, 0, 0, frame->sqn_gap); proto_item_set_generated(transport_item); - expert_add_info_format(pinfo, transport_item, &ei_lbtrm_analysis_sm_gap, "SM sequence gap (%" G_GUINT32_FORMAT ")", frame->sqn_gap); + expert_add_info_format(pinfo, transport_item, &ei_lbtrm_analysis_sm_gap, "SM sequence gap (%" PRIu32 ")", frame->sqn_gap); } if (frame->ooo_gap != 0) { transport_item = proto_tree_add_uint(transport_tree, hf_lbtrm_analysis_sm_ooo_gap, tvb, 0, 0, frame->ooo_gap); proto_item_set_generated(transport_item); - expert_add_info_format(pinfo, transport_item, &ei_lbtrm_analysis_sm_ooo, "SM sequence out of order gap (%" G_GUINT32_FORMAT ")", frame->ooo_gap); + expert_add_info_format(pinfo, transport_item, &ei_lbtrm_analysis_sm_ooo, "SM sequence out of order gap (%" PRIu32 ")", frame->ooo_gap); } if (frame->duplicate) { @@ -1720,6 +1720,8 @@ void proto_register_lbtrm(void) expert_lbtrm = expert_register_protocol(proto_lbtrm); expert_register_field_array(expert_lbtrm, ei, array_length(ei)); + lbtrm_dissector_handle = register_dissector("lbtrm", dissect_lbtrm, proto_lbtrm); + lbtrm_module = prefs_register_protocol_subtree("29West", proto_lbtrm, proto_reg_handoff_lbtrm); ws_inet_pton4(LBTRM_DEFAULT_MC_ADDRESS_LOW, &addr); lbtrm_mc_address_low_host = g_ntohl(addr); @@ -1853,7 +1855,6 @@ void proto_reg_handoff_lbtrm(void) if (!already_registered) { - lbtrm_dissector_handle = create_dissector_handle(dissect_lbtrm, proto_lbtrm); dissector_add_for_decode_as_with_preference("udp.port", lbtrm_dissector_handle); heur_dissector_add("udp", test_lbtrm_packet, "LBT Reliable Multicast over UDP", "lbtrm_udp", proto_lbtrm, HEURISTIC_ENABLE); lbtrm_tap_handle = register_tap("lbm_lbtrm"); |