aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-uma.c
diff options
context:
space:
mode:
authorwmeier <wmeier@f5534014-38df-0310-8fa8-9805f1628bb7>2008-11-14 15:29:36 +0000
committerwmeier <wmeier@f5534014-38df-0310-8fa8-9805f1628bb7>2008-11-14 15:29:36 +0000
commit030060fe2952eb4b8aa83b8935b32928e0a72352 (patch)
tree7728869d9776d96d70d4c1b12421f37f81e24f1b /epan/dissectors/packet-uma.c
parent264e324703225e1dc23fecac46e4d6f156d8bd78 (diff)
Various proto_register & proto_reg_handoff changes:
Change tcp ports preference name in prefs file to tcp.ports (register old 'udp.ports" as obsolete); Do various find_dissector & etc once-only in proto_reg_handoff; Move find_dissector_table from proto_register to proto_reg_handoff; Localize saved ports pref range; Do dissector_add_handle("udp.port",...) rather than registering to udp port 0; Also: Clean up some spacing; Declare some global variables as static; Remove some unnecessary =NULL initializers; git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@26776 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-uma.c')
-rw-r--r--epan/dissectors/packet-uma.c210
1 files changed, 101 insertions, 109 deletions
diff --git a/epan/dissectors/packet-uma.c b/epan/dissectors/packet-uma.c
index bf44b656d6..a9d094593e 100644
--- a/epan/dissectors/packet-uma.c
+++ b/epan/dissectors/packet-uma.c
@@ -76,37 +76,37 @@
/* Length field is 2 bytes and comes first */
#define UMA_HEADER_SIZE 2
-gboolean uma_desegment = TRUE;
+static gboolean uma_desegment = TRUE;
-static dissector_handle_t uma_tcp_handle = NULL;
-static dissector_handle_t uma_udp_handle = NULL;
-static dissector_handle_t data_handle = NULL;
-static dissector_table_t bssap_pdu_type_table=NULL;
-static dissector_handle_t rtp_handle = NULL;
-static dissector_handle_t rtcp_handle = NULL;
-static dissector_handle_t llc_handle = NULL;
+static dissector_handle_t uma_tcp_handle;
+static dissector_handle_t uma_udp_handle;
+static dissector_handle_t data_handle;
+static dissector_table_t bssap_pdu_type_table;
+static dissector_handle_t rtp_handle;
+static dissector_handle_t rtcp_handle;
+static dissector_handle_t llc_handle;
/* Initialize the protocol and registered fields */
static int proto_uma = -1;
-static int hf_uma_length_indicator = -1;
+static int hf_uma_length_indicator = -1;
static int hf_uma_pd = -1;
static int hf_uma_skip_ind = -1;
-static int hf_uma_urr_msg_type = -1;
-static int hf_uma_urlc_msg_type = -1;
+static int hf_uma_urr_msg_type = -1;
+static int hf_uma_urlc_msg_type = -1;
static int hf_uma_urlc_TLLI = -1;
-static int hf_uma_urlc_seq_nr = -1;
+static int hf_uma_urlc_seq_nr = -1;
static int hf_uma_urr_IE = -1;
-static int hf_uma_urr_IE_len = -1;
-static int hf_uma_urr_mobile_identity_type = -1;
-static int hf_uma_urr_odde_even_ind = -1;
+static int hf_uma_urr_IE_len = -1;
+static int hf_uma_urr_mobile_identity_type = -1;
+static int hf_uma_urr_odde_even_ind = -1;
static int hf_uma_urr_imsi = -1;
static int hf_uma_urr_imei = -1;
-static int hf_uma_urr_imeisv = -1;
-static int hf_uma_urr_tmsi_p_tmsi = -1;
+static int hf_uma_urr_imeisv = -1;
+static int hf_uma_urr_tmsi_p_tmsi = -1;
static int hf_uma_urr_uri = -1;
-static int hf_uma_urr_radio_type_of_id = -1;
-static int hf_uma_urr_radio_id = -1;
-static int hf_uma_urr_cell_id = -1;
+static int hf_uma_urr_radio_type_of_id = -1;
+static int hf_uma_urr_radio_id = -1;
+static int hf_uma_urr_cell_id = -1;
static int hf_uma_urr_mcc = -1;
static int hf_uma_urr_mnc = -1;
static int hf_uma_urr_lac = -1;
@@ -115,20 +115,20 @@ static int hf_uma_urr_tura = -1;
static int hf_uma_urr_gc = -1;
static int hf_uma_urr_uc = -1;
static int hf_uma_urr_rrs = -1;
-static int hf_uma_urr_IP_Address_type = -1;
+static int hf_uma_urr_IP_Address_type = -1;
static int hf_uma_urr_FQDN = -1;
-static int hf_uma_urr_sgw_ipv4 = -1;
-static int hf_uma_urr_redirection_counter = -1;
-static int hf_uma_urr_dis_rej_cau = -1;
+static int hf_uma_urr_sgw_ipv4 = -1;
+static int hf_uma_urr_redirection_counter = -1;
+static int hf_uma_urr_dis_rej_cau = -1;
static int hf_uma_urr_MSCR = -1;
static int hf_uma_urr_ATT = -1;
static int hf_uma_urr_DTM = -1;
static int hf_uma_urr_GPRS = -1;
static int hf_uma_urr_NMO = -1;
static int hf_uma_urr_ECMC = -1;
-static int hf_uma_urr_T3212_timer = -1;
+static int hf_uma_urr_T3212_timer = -1;
static int hf_uma_urr_RAC = -1;
-static int hf_uma_urr_ap_location = -1;
+static int hf_uma_urr_ap_location = -1;
static int hf_uma_urr_SGSNR = -1;
static int hf_uma_urr_ECMP = -1;
static int hf_uma_urr_RE = -1;
@@ -136,83 +136,83 @@ static int hf_uma_urr_PFCFM = -1;
static int hf_uma_urr_3GECS = -1;
static int hf_uma_urr_bcc = -1;
static int hf_uma_urr_ncc = -1;
-static int hf_uma_urr_TU3907_timer = -1;
-static int hf_uma_urr_GSM_RR_state = -1;
-static int hf_uma_urr_UMA_band = -1;
-static int hf_uma_urr_URR_state = -1;
-static int hf_uma_urr_register_reject_cause = -1;
-static int hf_uma_urr_TU3906_timer = -1;
-static int hf_uma_urr_TU3910_timer = -1;
-static int hf_uma_urr_TU3902_timer = -1;
-static int hf_uma_urr_communication_port = -1;
-static int hf_uma_urr_L3_Message = -1;
-static int hf_uma_urr_L3_protocol_discriminator = -1;
+static int hf_uma_urr_TU3907_timer = -1;
+static int hf_uma_urr_GSM_RR_state = -1;
+static int hf_uma_urr_UMA_band = -1;
+static int hf_uma_urr_URR_state = -1;
+static int hf_uma_urr_register_reject_cause = -1;
+static int hf_uma_urr_TU3906_timer = -1;
+static int hf_uma_urr_TU3910_timer = -1;
+static int hf_uma_urr_TU3902_timer = -1;
+static int hf_uma_urr_communication_port = -1;
+static int hf_uma_urr_L3_Message = -1;
+static int hf_uma_urr_L3_protocol_discriminator = -1;
static int hf_uma_urr_sc = -1;
-static int hf_uma_urr_algorithm_id = -1;
-static int hf_uma_urr_GPRS_resumption = -1;
+static int hf_uma_urr_algorithm_id = -1;
+static int hf_uma_urr_GPRS_resumption = -1;
static int hf_uma_urr_ULQI = -1;
-static int hf_uma_urr_TU3920_timer = -1;
-static int hf_uma_urr_peak_tpt_cls = -1;
-static int hf_uma_urr_radio_pri = -1;
-static int hf_uma_urr_rlc_mode = -1;
-static int hf_uma_urr_URLCcause = -1;
+static int hf_uma_urr_TU3920_timer = -1;
+static int hf_uma_urr_peak_tpt_cls = -1;
+static int hf_uma_urr_radio_pri = -1;
+static int hf_uma_urr_rlc_mode = -1;
+static int hf_uma_urr_URLCcause = -1;
static int hf_uma_urr_udr = -1;
-static int hf_uma_urr_TU4001_timer = -1;
+static int hf_uma_urr_TU4001_timer = -1;
static int hf_uma_urr_LS = -1;
-static int hf_uma_urr_cipher_res = -1;
-static int hf_uma_urr_rand_val = -1;
-static int hf_uma_urr_ciphering_command_mac = -1;
-static int hf_uma_urr_ciphering_key_seq_num = -1;
-static int hf_uma_urr_sapi_id = -1;
-static int hf_uma_urr_establishment_cause = -1;
-static int hf_uma_urr_channel = -1;
-static int hf_uma_urr_PDU_in_error = -1;
-static int hf_uma_urr_sample_size = -1;
-static int hf_uma_urr_payload_type = -1;
-static int hf_uma_urr_LLC_PDU = -1;
+static int hf_uma_urr_cipher_res = -1;
+static int hf_uma_urr_rand_val = -1;
+static int hf_uma_urr_ciphering_command_mac = -1;
+static int hf_uma_urr_ciphering_key_seq_num = -1;
+static int hf_uma_urr_sapi_id = -1;
+static int hf_uma_urr_establishment_cause = -1;
+static int hf_uma_urr_channel = -1;
+static int hf_uma_urr_PDU_in_error = -1;
+static int hf_uma_urr_sample_size = -1;
+static int hf_uma_urr_payload_type = -1;
+static int hf_uma_urr_LLC_PDU = -1;
static int hf_uma_urr_LBLI = -1;
static int hf_uma_urr_RI = -1;
-static int hf_uma_urr_TU4003_timer = -1;
-static int hf_uma_urr_ap_service_name_type = -1;
-static int hf_uma_urr_ap_Service_name_value = -1;
-static int hf_uma_urr_uma_service_zone_icon_ind = -1;
-static int hf_uma_urr_uma_service_zone_str_len = -1;
-static int hf_uma_urr_window_size = -1;
-static int hf_uma_urr_uma_codec_mode = -1;
-static int hf_uma_urr_UTRAN_cell_id_disc = -1;
-static int hf_uma_urr_ms_radio_id = -1;
-static int hf_uma_urr_uma_service_zone_str = -1;
+static int hf_uma_urr_TU4003_timer = -1;
+static int hf_uma_urr_ap_service_name_type = -1;
+static int hf_uma_urr_ap_Service_name_value = -1;
+static int hf_uma_urr_uma_service_zone_icon_ind = -1;
+static int hf_uma_urr_uma_service_zone_str_len = -1;
+static int hf_uma_urr_window_size = -1;
+static int hf_uma_urr_uma_codec_mode = -1;
+static int hf_uma_urr_UTRAN_cell_id_disc = -1;
+static int hf_uma_urr_ms_radio_id = -1;
+static int hf_uma_urr_uma_service_zone_str = -1;
static int hf_uma_urr_suti = -1;
-static int hf_uma_urr_uma_mps = -1;
-static int hf_uma_urr_num_of_plms = -1;
+static int hf_uma_urr_uma_mps = -1;
+static int hf_uma_urr_num_of_plms = -1;
static int hf_uma_urr_cbs = -1;
-static int hf_uma_urr_num_of_cbs_frms = -1;
-static int hf_uma_urr_unc_ipv4 = -1;
+static int hf_uma_urr_num_of_cbs_frms = -1;
+static int hf_uma_urr_unc_ipv4 = -1;
static int hf_uma_unc_FQDN = -1;
-static int hf_uma_urr_GPRS_user_data_transport_ipv4 = -1;
-static int hf_uma_urr_GPRS_port = -1;
-static int hf_uma_urr_UNC_tcp_port = -1;
-static int hf_uma_urr_RTP_port = -1;
-static int hf_uma_urr_RTCP_port = -1;
-static int hf_uma_urr_RXLEV_NCELL = -1;
+static int hf_uma_urr_GPRS_user_data_transport_ipv4 = -1;
+static int hf_uma_urr_GPRS_port = -1;
+static int hf_uma_urr_UNC_tcp_port = -1;
+static int hf_uma_urr_RTP_port = -1;
+static int hf_uma_urr_RTCP_port = -1;
+static int hf_uma_urr_RXLEV_NCELL = -1;
/* Initialize the subtree pointers */
-static int ett_uma = -1;
+static int ett_uma = -1;
static int ett_uma_toc = -1;
-static int ett_urr_ie = -1;
+static int ett_urr_ie = -1;
/* The dynamic payload type which will be dissected as uma */
static range_t *global_uma_tcp_port_range;
-static range_t *uma_tcp_port_range;
+
#define DEFAULT_UMA_PORT_RANGE "14001,14001"
/* Global variables */
- guint32 sgw_ipv4_address;
- guint32 unc_ipv4_address;
- guint32 rtp_ipv4_address;
- guint32 rtcp_ipv4_address;
- guint32 GPRS_user_data_ipv4_address;
+static guint32 sgw_ipv4_address;
+static guint32 unc_ipv4_address;
+static guint32 rtp_ipv4_address;
+static guint32 rtcp_ipv4_address;
+static guint32 GPRS_user_data_ipv4_address;
/*
* Protocol Discriminator (PD)
@@ -572,7 +572,7 @@ static const value_string register_reject_cause_vals[] = {
};
/* L3 Protocol discriminator values according to TS 24 007 (640) */
-/*** temporary
+#if 0 /** See packet-gms_a-dtap.c **/
static const value_string protocol_discriminator_vals[] = {
{0x0, "Group call control"},
{0x1, "Broadcast call control"},
@@ -592,7 +592,7 @@ static const value_string protocol_discriminator_vals[] = {
{0xf, "Reserved for tests procedures described in 3GPP TS 44.014 [5a] and 3GPP TS 34.109 [17a]."},
{ 0, NULL }
};
-***/
+#endif
/* algorithm identifier
* If SC=1 then:
@@ -790,7 +790,7 @@ dissect_uma_IE(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
tvbuff_t *l3_tvb;
tvbuff_t *llc_tvb;
tvbuff_t *new_tvb;
- int ie_offset;
+ int ie_offset;
guint8 ie_value;
guint16 ie_len = 0;
guint8 octet;
@@ -801,7 +801,7 @@ dissect_uma_IE(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
guint16 GPRS_user_data_transport_UDP_port,UNC_tcp_port,RTP_UDP_port,RTCP_UDP_port, communication_port;
guint32 udr;
conversation_t *conversation;
- address dst_addr, null_addr;
+ address dst_addr, null_addr;
guint8 str_len;
address src_addr;
@@ -812,7 +812,7 @@ dissect_uma_IE(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
proto_tree_add_item(urr_ie_tree, hf_uma_urr_IE, tvb, offset, 1, FALSE);
offset++;
- /* Some IE:s might have a lengt field of 2 octets */
+ /* Some IE:s might have a length field of 2 octets */
ie_len = tvb_get_guint8(tvb,offset);
if ( (ie_len & 0x80) == 0x80 ){
offset++;
@@ -1604,28 +1604,26 @@ range_add_callback(guint32 port)
void
proto_reg_handoff_uma(void)
{
- static int Initialized=FALSE;
+ static gboolean Initialized=FALSE;
+ static range_t *uma_tcp_port_range;
if (!Initialized) {
uma_tcp_handle = create_dissector_handle(dissect_uma_tcp, proto_uma);
uma_udp_handle = new_create_dissector_handle(dissect_uma_urlc_udp, proto_uma);
- dissector_add("udp.port", 0, uma_udp_handle);
+ dissector_add_handle("udp.port", uma_udp_handle); /* for "decode-as" */
+ data_handle = find_dissector("data");
+ rtp_handle = find_dissector("rtp");
+ rtcp_handle = find_dissector("rtcp");
+ llc_handle = find_dissector("llcgprs");
+ bssap_pdu_type_table = find_dissector_table("bssap.pdu_type");
Initialized=TRUE;
} else {
range_foreach(uma_tcp_port_range, range_delete_callback);
+ g_free(uma_tcp_port_range);
}
- g_free(uma_tcp_port_range);
uma_tcp_port_range = range_copy(global_uma_tcp_port_range);
-
range_foreach(uma_tcp_port_range, range_add_callback);
-
- data_handle = find_dissector("data");
- rtp_handle = find_dissector("rtp");
- rtcp_handle = find_dissector("rtcp");
- llc_handle = find_dissector("llcgprs");
-
-
}
/* this format is require because a script is used to build the C function
@@ -2188,19 +2186,16 @@ proto_register_uma(void)
/* Register the protocol name and description */
proto_uma = proto_register_protocol("Unlicensed Mobile Access","UMA", "uma");
- bssap_pdu_type_table = find_dissector_table("bssap.pdu_type");
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array(proto_uma, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- /* Register a configuration option for port */
-
+ /* Register a configuration option for port */
uma_module = prefs_register_protocol(proto_uma, proto_reg_handoff_uma);
/* Set default TCP ports */
range_convert_str(&global_uma_tcp_port_range, DEFAULT_UMA_PORT_RANGE, MAX_UDP_PORT);
- uma_tcp_port_range = range_empty();
prefs_register_bool_preference(uma_module, "desegment_ucp_messages",
"Reassemble UMA messages spanning multiple TCP segments",
@@ -2208,13 +2203,10 @@ proto_register_uma(void)
" To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
&uma_desegment);
prefs_register_obsolete_preference(uma_module, "tcp.port1");
- prefs_register_range_preference(uma_module, "udp.ports", "UMA TCP ports",
+ prefs_register_obsolete_preference(uma_module, "udp.ports");
+ prefs_register_range_preference(uma_module, "tcp.ports", "UMA TCP ports",
"TCP ports to be decoded as UMA (default: "
DEFAULT_UMA_PORT_RANGE ")",
&global_uma_tcp_port_range, MAX_UDP_PORT);
-
-
}
-
-