diff options
-rw-r--r-- | asn1/h225/h225.cnf | 84 | ||||
-rw-r--r-- | asn1/nbap/nbap.cnf | 267 | ||||
-rw-r--r-- | epan/address.h | 11 | ||||
-rw-r--r-- | epan/dissectors/packet-h225.c | 98 | ||||
-rw-r--r-- | epan/dissectors/packet-nbap.c | 361 | ||||
-rw-r--r-- | epan/dissectors/packet-tacacs.c | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-uma.c | 16 |
7 files changed, 402 insertions, 439 deletions
diff --git a/asn1/h225/h225.cnf b/asn1/h225/h225.cnf index 950160a44d..a122f656c5 100644 --- a/asn1/h225/h225.cnf +++ b/asn1/h225/h225.cnf @@ -1,6 +1,6 @@ # h225.cnf # H.225 conformation file -# Copyright 2004 Anders Broman +# Copyright 2004 Anders Broman # $Id$ #.IMPORT ../h235/h235-exp.cnf @@ -17,14 +17,14 @@ H323-UU-PDU/h323-message-body FacilityReason GatekeeperRejectReason -UnregRequestReason -UnregRejectReason -BandRejectReason -DisengageReason -DisengageRejectReason -InfoRequestNakReason -AdmissionRejectReason -LocationRejectReason +UnregRequestReason +UnregRejectReason +BandRejectReason +DisengageReason +DisengageRejectReason +InfoRequestNakReason +AdmissionRejectReason +LocationRejectReason RegistrationRejectReason #.MODULE_EXPORTS @@ -68,7 +68,7 @@ H323-UserInformation RasMessage ExtendedAliasAddress #.END - + #---------------------------------------------------------------------------------------- #.OMIT_ASSIGNMENT @@ -77,7 +77,7 @@ FastStartToken #.END #.VIRTUAL_ASSGN -FastStart Setup-UUIE/fastStart +FastStart Setup-UUIE/fastStart #.SET_TYPE Setup-UUIE/fastStart FastStart CallProceeding-UUIE/fastStart FastStart @@ -93,7 +93,7 @@ ParallelH245Control Setup-UUIE/parallelH245Control DialedDigits AliasAddress/dialledDigits #.VIRTUAL_ASSGN -DestinationInfo AdmissionRequest/destinationInfo +DestinationInfo AdmissionRequest/destinationInfo #.SET_TYPE AdmissionRequest/destinationInfo DestinationInfo AdmissionConfirm/destinationInfo DestinationInfo @@ -141,7 +141,7 @@ RasUsageSpecification/when RasUsageSpecification_when TransportAddress/ipAddress/ip IpV4 #---------------------------------------------------------------------------------------- #.FIELD_RENAME -RasUsageSpecification/callStartingPoint/alerting alerting_flg +RasUsageSpecification/callStartingPoint/alerting alerting_flg CallCreditServiceControl/callStartingPoint/alerting alerting_flg UseSpecifiedTransport/annexE annexE_flg @@ -154,8 +154,8 @@ NonStandardParameter/data nsp_data H323-UU-PDU/h323-message-body/empty empty_flg RasUsageInfoTypes/endTime endTime_flg UUIEsRequested/facility facility_bool -CallsAvailable/group group_IA5String -GroupID/group group_IA5String +CallsAvailable/group group_IA5String +GroupID/group group_IA5String Setup-UUIE/hopCount hopCount_1_31 UUIEsRequested/information information_bool @@ -174,12 +174,12 @@ UUIEsRequested/progress progress_bool Facility-UUIE/reason facilityReason UnregistrationRequest/reason unregRequestReason ReleaseComplete-UUIE/reason releaseCompleteReason -BandwidthReject/rejectReason bandRejectReason -UnregistrationReject/rejectReason unregRejectReason -RegistrationReject/rejectReason registrationRejectReason -LocationReject/rejectReason locationRejectReason -DisengageReject/rejectReason disengageRejectReason -GatekeeperReject/rejectReason gatekeeperRejectReason +BandwidthReject/rejectReason bandRejectReason +UnregistrationReject/rejectReason unregRejectReason +RegistrationReject/rejectReason registrationRejectReason +LocationReject/rejectReason locationRejectReason +DisengageReject/rejectReason disengageRejectReason +GatekeeperReject/rejectReason gatekeeperRejectReason UUIEsRequested/releaseComplete releaseComplete_bool UseSpecifiedTransport/sctp sctp_flg @@ -200,7 +200,7 @@ RasUsageSpecification/callStartingPoint/connect connect_flg CallCreditServiceControl/callStartingPoint/connect connect_flg Alerting-UUIE/destinationInfo uUIE_destinationInfo -CallProceeding-UUIE/destinationInfo uUIE_destinationInfo +CallProceeding-UUIE/destinationInfo uUIE_destinationInfo Connect-UUIE/destinationInfo uUIE_destinationInfo Facility-UUIE/destinationInfo uUIE_destinationInfo Progress-UUIE/destinationInfo uUIE_destinationInfo @@ -209,9 +209,9 @@ TunnelledProtocol/id tunnelledProtocol_id SecurityCapabilities/integrity securityCapabilities_integrity GenericIdentifier/nonStandard genericIdentifier_nonStandard -AlternateGK/rasAddress alternateGK_rasAddress +AlternateGK/rasAddress alternateGK_rasAddress GatekeeperRequest/rasAddress gatekeeperRequest_rasAddress -GatekeeperConfirm/rasAddress gatekeeperConfirm_rasAddress +GatekeeperConfirm/rasAddress gatekeeperConfirm_rasAddress LocationConfirm/rasAddress locationConfirm_rasAddress InfoRequestResponse/rasAddress infoRequestResponse_rasAddress @@ -364,7 +364,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber h225_pi->cs_type = H225_PROGRESS; if (contains_faststart == TRUE ) g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label); - else + else g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); #.END #---------------------------------------------------------------------------------------- @@ -409,7 +409,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber h225_pi->cs_type = H225_ALERTING; if (contains_faststart == TRUE ) g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label); - else + else g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); #.END #---------------------------------------------------------------------------------------- @@ -424,7 +424,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber h225_pi->cs_type = H225_CONNECT; if (contains_faststart == TRUE ) g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label); - else + else g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); #.END #---------------------------------------------------------------------------------------- @@ -437,16 +437,14 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber #.FN_FTR H245TransportAddress /* we need this info for TAPing */ h225_pi->is_h245 = TRUE; - h225_pi->h245_address = ipv4_address; - h225_pi->h245_port = ipv4_port; + h225_pi->h245_address = ipv4_address; + h225_pi->h245_port = ipv4_port; if((!actx->pinfo->fd->flags.visited) && ipv4_address!=0 && ipv4_port!=0 && h245_handle){ address src_addr; conversation_t *conv=NULL; - src_addr.type=AT_IPv4; - src_addr.len=4; - src_addr.data=(const guint8 *)&ipv4_address; + SET_ADDRESS(&src_addr, AT_IPv4, 4, &ipv4_address); conv=find_conversation(actx->pinfo->fd->num, &src_addr, &src_addr, PT_TCP, ipv4_port, ipv4_port, NO_ADDR_B|NO_PORT_B); if(!conv){ @@ -459,21 +457,21 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber #---------------------------------------------------------------------------------------- #.FN_BODY FacilityReason VAL_PTR = &value gint32 value; - + %(DEFAULT_BODY)s h225_pi->reason = value; #.END #---------------------------------------------------------------------------------------- #.FN_BODY GatekeeperRejectReason VAL_PTR = &value gint32 value; - + %(DEFAULT_BODY)s h225_pi->reason = value; #.END #---------------------------------------------------------------------------------------- #.FN_BODY UnregRequestReason VAL_PTR = &value gint32 value; - + %(DEFAULT_BODY)s h225_pi->reason = value; #.END @@ -494,13 +492,13 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber #---------------------------------------------------------------------------------------- #.FN_BODY DisengageReason VAL_PTR = &value gint32 value; - + %(DEFAULT_BODY)s h225_pi->reason = value; #---------------------------------------------------------------------------------------- #.FN_BODY DisengageRejectReason VAL_PTR = &value gint32 value; - + %(DEFAULT_BODY)s h225_pi->reason = value; #.END @@ -528,14 +526,14 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber #---------------------------------------------------------------------------------------- #.FN_BODY InfoRequestNakReason VAL_PTR = &value gint32 value; - + %(DEFAULT_BODY)s h225_pi->reason = value; #.END #---------------------------------------------------------------------------------------- #.FN_BODY ReleaseCompleteReason VAL_PTR = &value gint32 value; - + %(DEFAULT_BODY)s h225_pi->reason = value; #.END @@ -615,7 +613,7 @@ NonStandardIdentifier/object FN_VARIANT = _str VAL_PTR = &nsiOID #.FN_FTR H221NonStandard h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode; proto_tree_add_uint(tree, hf_h221Manufacturer, tvb, (offset>>3)-4, 4, h221NonStandard); -#.FN_PARS +#.FN_PARS H221NonStandard/t35CountryCode VAL_PTR = &t35CountryCode H221NonStandard/t35Extension VAL_PTR = &t35Extension H221NonStandard/manufacturerCode VAL_PTR = &manufacturerCode @@ -644,7 +642,7 @@ H221NonStandard/manufacturerCode VAL_PTR = &manufacturerCode gefx = gef_ctx_alloc(NULL, "GenericData"); actx->private_data = gefx; } -#.FN_FTR +#.FN_FTR actx->private_data = priv_data; #.END @@ -661,7 +659,7 @@ H221NonStandard/manufacturerCode VAL_PTR = &manufacturerCode #.FN_HDR FeatureDescriptor void *priv_data = actx->private_data; actx->private_data = gef_ctx_alloc(NULL, "FeatureDescriptor"); -#.FN_FTR +#.FN_FTR actx->private_data = priv_data; #.END #---------------------------------------------------------------------------------------- @@ -707,7 +705,7 @@ H221NonStandard/manufacturerCode VAL_PTR = &manufacturerCode #.FN_HDR TBCD-STRING int min_len, max_len; gboolean has_extension; - + get_size_constraint_from_stack(actx, "TBCD_STRING", &min_len, &max_len, &has_extension); #.FN_PARS TBCD-STRING MIN_VAL = min_len diff --git a/asn1/nbap/nbap.cnf b/asn1/nbap/nbap.cnf index 46db182493..ea4a7d53b8 100644 --- a/asn1/nbap/nbap.cnf +++ b/asn1/nbap/nbap.cnf @@ -1,7 +1,7 @@ # nbap.cnf # nbap conformation file # Copyright 2005 - 2012 Anders Broman -# Modified 2012 by Jacob Nordgren <jacob.nordgren@ericsson.com> and +# Modified 2012 by Jacob Nordgren <jacob.nordgren@ericsson.com> and # Rishie Sharma <rishie.sharma@ericsson.com> # $Id$ #.OPT @@ -203,7 +203,7 @@ actx->pinfo->link_dir=P2P_DIR_UL; g_nbap_msg_info_for_fp.ddMode = ddMode; g_nbap_msg_info_for_fp.is_uplink = TRUE; g_nbap_msg_info_for_fp.dch_crc_present = 2; /* unknown */ - + col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupRequest(FDD) "); /* CRNC -> Node B */ @@ -216,7 +216,7 @@ actx->pinfo->link_dir=P2P_DIR_UL; g_nbap_msg_info_for_fp.ddMode = ddMode; g_nbap_msg_info_for_fp.is_uplink = FALSE; g_nbap_msg_info_for_fp.dch_crc_present = 2; /* unknown */ - + col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupResponse(FDD) "); /* Node B -> CRNC */ @@ -697,7 +697,7 @@ nbap_dch_chnl_info[commontransportchannelid].next_dch = 0; %(DEFAULT_BODY)s - + #.FN_BODY HSDSCH-MACdFlow-ID VAL_PTR = &hsdsch_macdflow_id %(DEFAULT_BODY)s @@ -740,9 +740,7 @@ transportFormatSet_type = NBAP_CPCH; } SET_ADDRESS(&null_addr, AT_NONE, 0, NULL); - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&transportLayerAddress_ipv4; + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); conversation = find_conversation(actx->pinfo->fd->num,&dst_addr, &null_addr, PT_UDP, BindingID_port, @@ -767,7 +765,7 @@ transportFormatSet_type = NBAP_CPCH; SE_COPY_ADDRESS(&(umts_fp_conversation_info->crnc_address), &dst_addr); umts_fp_conversation_info->crnc_port = BindingID_port; umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN; - + /*Save unique UE-identifier */ umts_fp_conversation_info->com_context_id = crcn_context_present ? com_context_id : 1; @@ -811,7 +809,7 @@ guint32 PICH_Mode = 0; break; } - + #.FN_BODY PCH-ParametersItem-CTCH-SetupRqstFDD @@ -835,9 +833,7 @@ num_items = 1; } SET_ADDRESS(&null_addr, AT_NONE, 0, NULL); - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&transportLayerAddress_ipv4; + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); conversation = find_conversation(actx->pinfo->fd->num,&dst_addr, &null_addr, PT_UDP, BindingID_port, @@ -872,7 +868,7 @@ num_items = 1; nbap_debug2("Frame %%u PCH-ParametersItem-CTCH-SetupRqstFDD Start: num_tf %%u", actx->pinfo->fd->num, num_tf); - + for (j = 0; j < num_tf; j++) { umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_tf_size[j] = nbap_dch_chnl_info[commontransportchannelid].ul_chan_tf_size[j]; umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[commontransportchannelid].ul_chan_num_tbs[j]; @@ -891,7 +887,7 @@ num_items = 1; i = commontransportchannelid; nbap_debug2(" commontransportchannelid %%u next ch %%u",commontransportchannelid, nbap_dch_chnl_info[i].next_dch); - + umts_fp_conversation_info->dchs_in_flow_list[0] = commontransportchannelid; while(nbap_dch_chnl_info[i].next_dch != 0){ i = nbap_dch_chnl_info[i].next_dch; @@ -914,7 +910,7 @@ num_items = 1; umts_fp_conversation_info->num_dch_in_flow++; nbap_debug1(" num_dch_in_flow %%u", umts_fp_conversation_info->num_dch_in_flow); - + umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i; set_umts_fp_conv_data(conversation, umts_fp_conversation_info); @@ -946,9 +942,7 @@ transportFormatSet_type = NBAP_CPCH; } SET_ADDRESS(&null_addr, AT_NONE, 0, NULL); - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&transportLayerAddress_ipv4; + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); conversation = find_conversation(actx->pinfo->fd->num,&dst_addr, &null_addr, PT_UDP, BindingID_port, @@ -975,8 +969,8 @@ transportFormatSet_type = NBAP_CPCH; umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN; /*Save unique UE-identifier */ umts_fp_conversation_info->com_context_id = crcn_context_present ? com_context_id : 1; - - + + /* DCH's in this flow */ umts_fp_conversation_info->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present; /* Set data for First or single channel */ @@ -1075,13 +1069,13 @@ guint32 NrOfTransportBlocks; nbap_dch_chnl_info[dch_id].num_dl_chans++; nbap_dch_chnl_info[dch_id].dl_chan_num_tbs[num_items-1] = NrOfTransportBlocks; break; - case NBAP_CPCH: + case NBAP_CPCH: nbap_dch_chnl_info[commonphysicalchannelid].num_ul_chans++; nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_num_tbs[num_items-1] = NrOfTransportBlocks; nbap_dch_chnl_info[commonphysicalchannelid].num_dl_chans++; nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_num_tbs[num_items-1] = NrOfTransportBlocks; break; - case NBAP_PCH: + case NBAP_PCH: nbap_dch_chnl_info[commontransportchannelid].num_ul_chans++; nbap_dch_chnl_info[commontransportchannelid].ul_chan_num_tbs[num_items-1] = NrOfTransportBlocks; nbap_dch_chnl_info[commontransportchannelid].num_dl_chans++; @@ -1146,17 +1140,15 @@ dch_id = 0xFFFFFFFF; { return offset; } - + /*RBS might sometimes send a nonsens bind, to indicate that no DCH is present*/ if(BindingID_port == NBAP_IGNORE_PORT){ return offset; } - + SET_ADDRESS(&null_addr, AT_NONE, 0, NULL); - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&transportLayerAddress_ipv4; + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); conversation = find_conversation(actx->pinfo->fd->num,&dst_addr, &null_addr, PT_UDP, BindingID_port, @@ -1185,7 +1177,7 @@ dch_id = 0xFFFFFFFF; /* DCH's in this flow */ umts_fp_conversation_info->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present; - + /*Save unique UE-identifier */ umts_fp_conversation_info->com_context_id = com_context_id; @@ -1203,17 +1195,17 @@ dch_id = 0xFFFFFFFF; umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_tf_size[j] = nbap_dch_chnl_info[dch_id].dl_chan_tf_size[j]; umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_num_tbs[j] = nbap_dch_chnl_info[dch_id].dl_chan_num_tbs[j]; } - + /* Set data for associated DCH's if we have any */ i = dch_id; umts_fp_conversation_info->dchs_in_flow_list[0] = dch_id; while(nbap_dch_chnl_info[i].next_dch != 0){ - - + + i = nbap_dch_chnl_info[i].next_dch; umts_fp_conversation_info->num_dch_in_flow++; umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i; /*Set transport channel id*/ - + /*Setting Logical Channel's for this DCH*/ /* Traffic flows per DCH(UL) */ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].num_ul_chans = num_tf = nbap_dch_chnl_info[i].num_ul_chans; @@ -1228,17 +1220,17 @@ dch_id = 0xFFFFFFFF; umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].dl_chan_tf_size[j] = nbap_dch_chnl_info[i].dl_chan_tf_size[j]; umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].dl_chan_num_tbs[j] = nbap_dch_chnl_info[i].dl_chan_num_tbs[j]; } - + } umts_fp_conversation_info->num_dch_in_flow++; umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i; set_umts_fp_conv_data(conversation, umts_fp_conversation_info); } - + nbap_debug1("Frame %%u RL-Specific-DCH-Info-Item Start", actx->pinfo->fd->num); nbap_debug1(" Total no of ch in flow will be: %%d", umts_fp_conversation_info->num_dch_in_flow); nbap_debug1("Frame %%u RL-Specific-DCH-Info-Item End", actx->pinfo->fd->num); - + } @@ -1264,21 +1256,19 @@ BindingID_port = 0; } SET_ADDRESS(&null_addr, AT_NONE, 0, NULL); - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&transportLayerAddress_ipv4; + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); conversation = find_conversation(actx->pinfo->fd->num,&dst_addr, &null_addr, PT_UDP, BindingID_port, 0, NO_ADDR_B|NO_PORT_B); - /* We must also check if this port is about to be overriden, if thats the case we + /* We must also check if this port is about to be overriden, if thats the case we * might already have a DCH entry on this port which should be overwritten */ if (conversation == NULL || ((umts_fp_conversation_info_t*)conversation_get_proto_data(conversation, proto_fp))->channel == CHANNEL_DCH) { - - - + + + /* It's not part of any conversation - create a new one. */ conversation = conversation_new(actx->pinfo->fd->num, &dst_addr, &null_addr, PT_UDP,BindingID_port , @@ -1299,8 +1289,8 @@ BindingID_port = 0; umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN; - - + + if(crcn_context_present){ umts_fp_conversation_info->com_context_id = com_context_id; }else{ @@ -1323,8 +1313,8 @@ BindingID_port = 0; nbap_edch_port_info->crnc_port[e_dch_macdflow_id] = BindingID_port; /*Ip address might be useful as well*/ nbap_edch_port_info->crnc_address = transportLayerAddress_ipv4; - - nbap_debug1("Frame %%u RL-Specific-E-DCH-Information-Item Start", + + nbap_debug1("Frame %%u RL-Specific-E-DCH-Information-Item Start", actx->pinfo->fd->num); nbap_debug4(" g_tree_insert(edch_flow_port_map) com_context_id %%u e_dch_macdflow_id %%u IP %%s Port %%u", @@ -1349,14 +1339,14 @@ BindingID_port = 0; /* Must be same ADDRESS */ old_info->crnc_port[e_dch_macdflow_id] = BindingID_port; } - + set_umts_fp_conv_data(conversation, umts_fp_conversation_info); nbap_debug1("Frame %%u RL-Specific-E-DCH-Information-Item End", actx->pinfo->fd->num); } } - + #.FN_BODY E-DCH-MACdFlow-Specific-InfoItem umts_fp_conversation_info_t *p_conv_data = NULL; @@ -1369,7 +1359,7 @@ guint32 no_ddi_entries, i; { return offset; } - + /* Check if we have conversation info */ SET_ADDRESS(&null_addr, AT_NONE, 0, NULL); p_conv = find_conversation(actx->pinfo->fd->num, &nbap_edch_channel_info[e_dch_macdflow_id].crnc_address, &null_addr, @@ -1388,21 +1378,21 @@ guint32 no_ddi_entries, i; p_conv_data->edch_ddi[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i]; p_conv_data->edch_macd_pdu_size[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i]; - p_conv_data->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]; /*lchId_type_table[nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]];*/ + p_conv_data->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]; /*lchId_type_table[nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]];*/ /*g_print("E-DCH-MACdFlow-Specific-InfoItem: e_dch_macdflow_id %%u edch_ddi %%u edch_macd_pdu_size %%u\n", - e_dch_macdflow_id, + e_dch_macdflow_id, nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i], nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i] );*/ } - + /* COPY_ADDRESS(&(nbap_edch_port_info->crnc_address[e_dch_macdflow_id]),&dst_addr);*/ p_conv_data->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present; - + /* Figure out which type of E-DCH frame, based on DDI value (DDI = 0 => type 2)*/ if( 0 == e_dch_ddi_value ){ p_conv_data->edch_type = 1; /* 1 means T2 */ - }else{ + }else{ /*Value 1-5 means T1*/ p_conv_data->edch_type = 0; /* 0 means T1 */ } @@ -1421,7 +1411,7 @@ transportLayerAddress_ipv4 = 0; BindingID_port = 0; %(DEFAULT_BODY)s - + if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0) { return offset; @@ -1432,27 +1422,24 @@ BindingID_port = 0; * */ SET_ADDRESS(&null_addr, AT_NONE, 0, NULL); - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&transportLayerAddress_ipv4; - - + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); + old_conversation = find_conversation(actx->pinfo->fd->num,&dst_addr, &null_addr, PT_UDP, BindingID_port, 0, NO_ADDR_B|NO_PORT_B); if(old_conversation){ - nbap_debug3("Frame %%u E-DCH-FDD-Information-to-Modify: found old conv on IP %%s Port %%u", - actx->pinfo->fd->num, + nbap_debug3("Frame %%u E-DCH-FDD-Information-to-Modify: found old conv on IP %%s Port %%u", + actx->pinfo->fd->num, ep_address_to_str(&dst_addr), BindingID_port); }else{ - nbap_debug3("Frame %%u E-DCH-FDD-Information-to-Modify: Did not find old conv on IP %%s Port %%u", - actx->pinfo->fd->num, + nbap_debug3("Frame %%u E-DCH-FDD-Information-to-Modify: Did not find old conv on IP %%s Port %%u", + actx->pinfo->fd->num, ep_address_to_str(&dst_addr), BindingID_port); } - + /* It's not part of any conversation - create a new one. */ conversation = conversation_new(actx->pinfo->fd->num, &dst_addr, &null_addr, PT_UDP,BindingID_port , @@ -1464,7 +1451,7 @@ BindingID_port = 0; umts_fp_conversation_info = se_new0(umts_fp_conversation_info_t); /*Steal the old informatoin*/ memcpy(umts_fp_conversation_info,conversation_get_proto_data(old_conversation, proto_fp),sizeof(umts_fp_conversation_info_t)); - + /* Overwrite the data */ umts_fp_conversation_info->iface_type = IuB_Interface; umts_fp_conversation_info->division = Division_FDD; @@ -1476,8 +1463,8 @@ BindingID_port = 0; umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN; - - + + if(crcn_context_present){ umts_fp_conversation_info->com_context_id = com_context_id; }else{ @@ -1488,15 +1475,15 @@ BindingID_port = 0; expert_add_info_format(actx->pinfo, NULL, PI_MALFORMED, PI_WARN, "Couldn't not set Communication Context-ID, fragments over reconfigured channels might fail"); } } - + /* Set address for collection of DDI entries */ COPY_ADDRESS(&(nbap_edch_channel_info[e_dch_macdflow_id].crnc_address),&dst_addr); nbap_edch_channel_info[e_dch_macdflow_id].crnc_port = BindingID_port; - - + + /*Indicate that the frag table has to be reset*/ umts_fp_conversation_info->reset_frag = TRUE; - + set_umts_fp_conv_data(conversation, umts_fp_conversation_info); } @@ -1511,15 +1498,15 @@ conversation_t *p_conv; num_items = 1; %(DEFAULT_BODY)s - + if (actx->pinfo->fd->flags.visited) { return offset; } - + nbap_debug1("Frame %%u E-DCH-MACdFlow-Specific-InfoItem-to-Modify", actx->pinfo->fd->num); - + /****** Look up old port and ip information since this is not included in this message ******/ /*Find proper communication context ID*/ if(crcn_context_present){ @@ -1539,7 +1526,7 @@ num_items = 1; return offset; } nbap_debug1(" Found com_context_id %%u", com_context_id); - + /*Set the appropriate port, cheat and use same variable.*/ BindingID_port = old_info->crnc_port[e_dch_macdflow_id]; @@ -1549,7 +1536,7 @@ num_items = 1; /*TODO: Fix this for ipv6 as well!*/ transportLayerAddress_ipv4 = old_info->crnc_address; - + /*Do the configurations*/ /* Check if we have conversation info */ SET_ADDRESS(&null_addr, AT_NONE, 0, NULL); @@ -1569,28 +1556,28 @@ num_items = 1; p_conv_data->edch_ddi[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i]; p_conv_data->edch_macd_pdu_size[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i]; - p_conv_data->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]; /*lchId_type_table[nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]];*/ + p_conv_data->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]; /*lchId_type_table[nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]];*/ /* g_print("E-DCH-MACdFlow-Specific-InfoItem: e_dch_macdflow_id %%u edch_ddi %%u edch_macd_pdu_size %%u\n", - e_dch_macdflow_id, + e_dch_macdflow_id, nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i], nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i] );*/ } - + /* COPY_ADDRESS(&(nbap_edch_port_info->crnc_address[e_dch_macdflow_id]),&dst_addr);*/ p_conv_data->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present; - + /* Figure out which type of E-DCH frame, based on DDI value (DDI = 0 => type 2)*/ if( 0 == e_dch_ddi_value ){ p_conv_data->edch_type = 1; /* 1 means T2 */ - }else{ + }else{ /*Value 1-5 means T1*/ p_conv_data->edch_type = 0; /* 0 means T1 */ } /* use to display e_dch_macdflow_id */ p_conv_data->num_dch_in_flow = 1; p_conv_data->dchs_in_flow_list[0] = e_dch_macdflow_id; - + @@ -1631,7 +1618,7 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items; #.FN_BODY LogicalChannelID VAL_PTR = &logical_channel_id /* Set logical channel id for this entry*/ %(DEFAULT_BODY)s - + nbap_edch_channel_info[e_dch_macdflow_id].lchId[num_items-1] = logical_channel_id; @@ -1666,8 +1653,8 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items; guint32 i; num_items = 0; protocol_ie_id = ProtocolIE_ID; - - + + /*Handle special cases, when the tree is weird, ie. no useful message appears in the tree, like HSDHSCH-Information-FDD */ switch(protocol_ie_id){ /*This flow must also be added*/ @@ -1683,7 +1670,7 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items; } %(DEFAULT_BODY)s add_hsdsch_bind(actx->pinfo,tree); - + break; default: %(DEFAULT_BODY)s @@ -1713,20 +1700,19 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items; num_items++; %(DEFAULT_BODY)s - + if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0) { return offset; } - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&transportLayerAddress_ipv4; + + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); /* Set address for collection of HSDSCH entries */ COPY_ADDRESS(&(nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_address),&dst_addr); nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_port = BindingID_port; - - + + #.FN_BODY MAC-PDU-SizeExtended %(DEFAULT_BODY)s if(nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_port != 0){ @@ -1737,7 +1723,7 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items; #.FN_BODY HSDSCH-MACdPDUSizeFormat /* * Removed 10 Aug. 2012, I'm not sure if this was right, it wrongfully - * set some packets as type 2 for HSDHCH modified items. + * set some packets as type 2 for HSDHCH modified items. **/ @@ -1752,9 +1738,9 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items; if (nbap_hsdsch_channel_info[i].crnc_port != 0){ nbap_hsdsch_channel_info[i].entity = ehs; } - + }*/ - + #.FN_BODY HSDSCH-FDD-Information @@ -1788,14 +1774,14 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items; if (nbap_hsdsch_channel_info[i].crnc_port != 0){ nbap_debug4("Frame %%u HSDSCH-MACdFlows-Information:hsdsch_macdflow_id %%u Look for conv on IP %%s Port %%u", actx->pinfo->fd->num, - i, + i, ep_address_to_str (&(nbap_hsdsch_channel_info[i].crnc_address)), nbap_hsdsch_channel_info[i].crnc_port); conversation = find_conversation(actx->pinfo->fd->num, &(nbap_hsdsch_channel_info[i].crnc_address), &null_addr, PT_UDP, nbap_hsdsch_channel_info[i].crnc_port, 0, NO_ADDR_B); - + if (conversation == NULL) { /* It's not part of any conversation - create a new one. */ nbap_debug2("Frame %%u HSDSCH-MACdFlows-Information: Set up conv on Port %%u", actx->pinfo->fd->num, nbap_hsdsch_channel_info[i].crnc_port); @@ -1805,7 +1791,7 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items; /* Set dissector */ conversation_set_dissector(conversation, fp_handle); - + if(actx->pinfo->link_dir==P2P_DIR_DL){ umts_fp_conversation_info = se_new0(umts_fp_conversation_info_t); /* Fill in the HSDSCH relevant data */ @@ -1817,10 +1803,10 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items; umts_fp_conversation_info->ul_frame_number = actx->pinfo->fd->num; SE_COPY_ADDRESS(&(umts_fp_conversation_info->crnc_address), &nbap_hsdsch_channel_info[i].crnc_address); umts_fp_conversation_info->crnc_port = nbap_hsdsch_channel_info[i].crnc_port; - + /*Added june 3, normally just the iterator variable*/ umts_fp_conversation_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/ - + /*Added july 2012*/ umts_fp_conversation_info->com_context_id = com_context_id; @@ -1828,9 +1814,9 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items; umts_fp_conversation_info->num_dch_in_flow++; umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i; - /*XXX: Is this craziness, what is physical_layer? */ + /*XXX: Is this craziness, what is physical_layer? */ if(nbap_hsdsch_channel_info[i].entity == entity_not_specified ){ - + if(nbap_hsdsch_channel_info[i].hsdsch_physical_layer_category > 12){ umts_fp_conversation_info->hsdsch_entity = ehs; }else{ @@ -1851,28 +1837,27 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items; transportLayerAddress_ipv4 = 0; BindingID_port = 0; num_items++; - + %(DEFAULT_BODY)s if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0) { return offset; } - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&transportLayerAddress_ipv4; + + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); /* Set address for collection of HSDSCH entries */ COPY_ADDRESS(&(nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_address),&dst_addr); nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_port = BindingID_port; - - + + #.FN_BODY HSDSCH-Information-to-Modify /* * This is pretty much the same like if we setup a previous flow - */ + */ -/* +/* * Collect the information about the HSDSCH MACdFlows set up conversation(s) and set the conversation data. */ address null_addr; @@ -1905,14 +1890,14 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items; for (i = 0; i < maxNrOfMACdFlows; i++) { if (nbap_hsdsch_channel_info[i].crnc_port != 0){ nbap_debug3(" hsdsch_macdflow_id %%u Look for conv on IP %%s Port %%u", - i, + i, ep_address_to_str (&(nbap_hsdsch_channel_info[i].crnc_address)), nbap_hsdsch_channel_info[i].crnc_port); conversation = find_conversation(actx->pinfo->fd->num, &(nbap_hsdsch_channel_info[i].crnc_address), &null_addr, PT_UDP, nbap_hsdsch_channel_info[i].crnc_port, 0, NO_ADDR_B); - + if (conversation == NULL) { /* It's not part of any conversation - create a new one. */ nbap_debug1(" Set up conv on Port %%u", nbap_hsdsch_channel_info[i].crnc_port); @@ -1923,7 +1908,7 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items; /* Set dissector */ conversation_set_dissector(conversation, fp_handle); - + if(actx->pinfo->link_dir==P2P_DIR_DL){ umts_fp_conversation_info = se_new0(umts_fp_conversation_info_t); /* Fill in the HSDSCH relevant data */ @@ -1935,10 +1920,10 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items; umts_fp_conversation_info->ul_frame_number = actx->pinfo->fd->num; SE_COPY_ADDRESS(&(umts_fp_conversation_info->crnc_address), &nbap_hsdsch_channel_info[i].crnc_address); umts_fp_conversation_info->crnc_port = nbap_hsdsch_channel_info[i].crnc_port; - + /*Added june 3, normally just the iterator variable*/ umts_fp_conversation_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/ - + /*Added july 2012*/ umts_fp_conversation_info->com_context_id = com_context_id; @@ -1946,7 +1931,7 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items; umts_fp_conversation_info->num_dch_in_flow++; umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i; - /*XXX: Is this craziness, what is physical_layer? */ + /*XXX: Is this craziness, what is physical_layer? */ if(nbap_hsdsch_channel_info[i].entity == entity_not_specified ){ if(nbap_hsdsch_channel_info[i].hsdsch_physical_layer_category > 12){ @@ -1957,12 +1942,12 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items; }else{ umts_fp_conversation_info->hsdsch_entity = nbap_hsdsch_channel_info[i].entity; } - + umts_fp_conversation_info->rlc_mode = nbap_hsdsch_channel_info[i].rlc_mode; - + /*Indicate that the frag table has to be reset*/ umts_fp_conversation_info->reset_frag = TRUE; - + set_umts_fp_conv_data(conversation, umts_fp_conversation_info); } } @@ -1984,7 +1969,7 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items; transportLayerAddress_ipv4 = 0; BindingID_port = 0; num_items++; - + %(DEFAULT_BODY)s if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0) @@ -1992,15 +1977,13 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items; return offset; } - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&transportLayerAddress_ipv4; + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); /* Set address for collection of common entries */ COPY_ADDRESS(&(nbap_common_channel_info[common_macdflow_id].crnc_address),&dst_addr); nbap_common_channel_info[common_macdflow_id].crnc_port = BindingID_port; - - + + #.FN_BODY HSDSCH-Common-System-InformationFDD /* * 5.1.6 High Speed Downlink Shared Channels @@ -2023,9 +2006,9 @@ int i; for (i = 0; i < maxNrOfCommonMACFlows; i++) { nbap_common_channel_info[i].crnc_port = 0; nbap_common_channel_info[i].rlc_mode = FP_RLC_MODE_UNKNOWN; - + } - + } %(DEFAULT_BODY)s @@ -2040,7 +2023,7 @@ int i; conversation = find_conversation(actx->pinfo->fd->num, &(nbap_common_channel_info[i].crnc_address), &null_addr, PT_UDP, nbap_common_channel_info[i].crnc_port, 0, NO_ADDR_B); - + if (conversation == NULL) { conversation = conversation_new(actx->pinfo->fd->num, &(nbap_common_channel_info[i].crnc_address), &null_addr, PT_UDP, nbap_common_channel_info[i].crnc_port, @@ -2050,43 +2033,43 @@ int i; conversation_set_dissector(conversation, fp_handle); /*Set NBAP configuration to lower layers*/ if(actx->pinfo->link_dir==P2P_DIR_DL){ - + umts_fp_conversation_info = se_new0(umts_fp_conversation_info_t); /*Select frame type = 3 according to paragraph 5.1.6 in 3GPP TS 25.435*/ umts_fp_conversation_info->channel = CHANNEL_HSDSCH_COMMON; umts_fp_conversation_info->division = Division_FDD; - + umts_fp_conversation_info->dl_frame_number = 0; umts_fp_conversation_info->ul_frame_number = actx->pinfo->fd->num; SE_COPY_ADDRESS(&(umts_fp_conversation_info->crnc_address), &nbap_common_channel_info[i].crnc_address); umts_fp_conversation_info->crnc_port = nbap_common_channel_info[i].crnc_port; - + /*umts_fp_conversation_info->hsdsch_macdflow_id = i ;*/ /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/ umts_fp_conversation_info->common_macdflow_id = common_macdflow_id; - + umts_fp_conversation_info->hsdsch_entity = ehs; - + umts_fp_conversation_info->num_dch_in_flow++; umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i; - + set_umts_fp_conv_data(conversation, umts_fp_conversation_info); } - + } - + } } #This guy should perhaps also be impletemented, hsdsch frame type 3 -#.FN_BODY HSDSCH-Paging-System-InformationFDD +#.FN_BODY HSDSCH-Paging-System-InformationFDD /* g_warning("HS-DSCH Type 3 NOT Implemented!"); */ %(DEFAULT_BODY)s # -#Routines for figuring out a unique UE identification number (to track flows over changing channels) +#Routines for figuring out a unique UE identification number (to track flows over changing channels) # #.FN_BODY CRNC-CommunicationContextID VAL_PTR = &com_context_id @@ -2106,7 +2089,7 @@ nbap_com_context_id_t *cur_val; /*If both are avaible we can update the map*/ if(crcn_context_present){ if( (cur_val=g_tree_lookup(com_context_map, GINT_TO_POINTER((gint)node_b_com_context_id))) == NULL ){ - + cur_val = g_new(nbap_com_context_id_t,1); cur_val->crnc_context = com_context_id; cur_val->frame_num = actx->pinfo->fd->num; @@ -2140,13 +2123,13 @@ int i; } } } - + #.FN_BODY RadioLinkReconfigurationCommit /* * Here we need to signal the CFN value, down to FP so * that lowert layers know when a reconfiguration becomes active * */ - + %(DEFAULT_BODY)s #.FN_BODY CFN VAL_PTR = &cfn diff --git a/epan/address.h b/epan/address.h index cf20d3c48c..c7b9959730 100644 --- a/epan/address.h +++ b/epan/address.h @@ -150,15 +150,26 @@ typedef struct _address { guint8 *COPY_ADDRESS_data; \ (to)->type = (from)->type; \ (to)->len = (from)->len; \ + (to)->hf = (from)->hf; \ COPY_ADDRESS_data = g_malloc((from)->len); \ memcpy(COPY_ADDRESS_data, (from)->data, (from)->len); \ (to)->data = COPY_ADDRESS_data; \ } +/* Perform a shallow copy of the address (both addresses point to the same + * memory location). + */ +#define COPY_ADDRESS_SHALLOW(to, from) \ + (to)->type = (from)->type; \ + (to)->len = (from)->len; \ + (to)->hf = (from)->hf; \ + (to)->data = (from)->data; + #define SE_COPY_ADDRESS(to, from) { \ guint8 *SE_COPY_ADDRESS_data; \ (to)->type = (from)->type; \ (to)->len = (from)->len; \ + (to)->hf = (from)->hf; \ SE_COPY_ADDRESS_data = se_alloc((from)->len); \ memcpy(SE_COPY_ADDRESS_data, (from)->data, (from)->len); \ (to)->data = SE_COPY_ADDRESS_data; \ diff --git a/epan/dissectors/packet-h225.c b/epan/dissectors/packet-h225.c index a95219fa01..ad959903dd 100644 --- a/epan/dissectors/packet-h225.c +++ b/epan/dissectors/packet-h225.c @@ -1423,7 +1423,7 @@ static const per_sequence_t H221NonStandard_sequence[] = { static int dissect_h225_H221NonStandard(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 612 "../../asn1/h225/h225.cnf" +#line 610 "../../asn1/h225/h225.cnf" t35CountryCode = 0; t35Extension = 0; manufacturerCode = 0; @@ -1431,7 +1431,7 @@ dissect_h225_H221NonStandard(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h225_H221NonStandard, H221NonStandard_sequence); -#line 616 "../../asn1/h225/h225.cnf" +#line 614 "../../asn1/h225/h225.cnf" h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode; proto_tree_add_uint(tree, hf_h221Manufacturer, tvb, (offset>>3)-4, 4, h221NonStandard); @@ -1453,7 +1453,7 @@ static const per_choice_t NonStandardIdentifier_choice[] = { static int dissect_h225_NonStandardIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 593 "../../asn1/h225/h225.cnf" +#line 591 "../../asn1/h225/h225.cnf" gint32 value; nsiOID = ""; @@ -1482,7 +1482,7 @@ dissect_h225_NonStandardIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int dissect_h225_T_nsp_data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 627 "../../asn1/h225/h225.cnf" +#line 625 "../../asn1/h225/h225.cnf" tvbuff_t *next_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -1505,7 +1505,7 @@ static const per_sequence_t NonStandardParameter_sequence[] = { int dissect_h225_NonStandardParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 625 "../../asn1/h225/h225.cnf" +#line 623 "../../asn1/h225/h225.cnf" nsp_handle = NULL; offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -1551,16 +1551,14 @@ dissect_h225_H245TransportAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t #line 438 "../../asn1/h225/h225.cnf" /* we need this info for TAPing */ h225_pi->is_h245 = TRUE; - h225_pi->h245_address = ipv4_address; - h225_pi->h245_port = ipv4_port; + h225_pi->h245_address = ipv4_address; + h225_pi->h245_port = ipv4_port; if((!actx->pinfo->fd->flags.visited) && ipv4_address!=0 && ipv4_port!=0 && h245_handle){ address src_addr; conversation_t *conv=NULL; - src_addr.type=AT_IPv4; - src_addr.len=4; - src_addr.data=(const guint8 *)&ipv4_address; + SET_ADDRESS(&src_addr, AT_IPv4, 4, &ipv4_address); conv=find_conversation(actx->pinfo->fd->num, &src_addr, &src_addr, PT_TCP, ipv4_port, ipv4_port, NO_ADDR_B|NO_PORT_B); if(!conv){ @@ -1894,10 +1892,10 @@ dissect_h225_PartyNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ static int dissect_h225_TBCD_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 708 "../../asn1/h225/h225.cnf" +#line 706 "../../asn1/h225/h225.cnf" int min_len, max_len; gboolean has_extension; - + get_size_constraint_from_stack(actx, "TBCD_STRING", &min_len, &max_len, &has_extension); offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index, @@ -2693,13 +2691,13 @@ static const per_sequence_t TunnelledProtocol_sequence[] = { int dissect_h225_TunnelledProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 570 "../../asn1/h225/h225.cnf" +#line 568 "../../asn1/h225/h225.cnf" tpOID = ""; offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h225_TunnelledProtocol, TunnelledProtocol_sequence); -#line 572 "../../asn1/h225/h225.cnf" +#line 570 "../../asn1/h225/h225.cnf" tp_handle = dissector_get_string_handle(tp_dissector_table, tpOID); return offset; @@ -2877,7 +2875,7 @@ dissect_h225_CallType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p static int dissect_h225_T_guid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 544 "../../asn1/h225/h225.cnf" +#line 542 "../../asn1/h225/h225.cnf" tvbuff_t *guid_tvb = NULL; actx->value_ptr = &guid_tvb; @@ -3679,7 +3677,7 @@ dissect_h225_CircuitIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int dissect_h225_T_standard(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 684 "../../asn1/h225/h225.cnf" +#line 682 "../../asn1/h225/h225.cnf" guint32 value_int = (guint32)-1; gef_ctx_t *gefx; @@ -3697,7 +3695,7 @@ dissect_h225_T_standard(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int dissect_h225_T_oid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 693 "../../asn1/h225/h225.cnf" +#line 691 "../../asn1/h225/h225.cnf" const gchar *oid_str = NULL; gef_ctx_t *gefx; @@ -3727,14 +3725,14 @@ static const per_choice_t GenericIdentifier_choice[] = { int dissect_h225_GenericIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 670 "../../asn1/h225/h225.cnf" +#line 668 "../../asn1/h225/h225.cnf" gef_ctx_t *gefx; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, ett_h225_GenericIdentifier, GenericIdentifier_choice, NULL); -#line 672 "../../asn1/h225/h225.cnf" +#line 670 "../../asn1/h225/h225.cnf" gef_ctx_update_key(gef_ctx_get(actx->private_data)); /* DEBUG */ /*proto_tree_add_text(tree, tvb, offset>>3, 0, "*** DEBUG GenericIdentifier: %s", gef_ctx_get(actx->private_data)->key);*/ gefx = gef_ctx_get(actx->private_data); @@ -3867,7 +3865,7 @@ dissect_h225_EnumeratedParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int dissect_h225_T_parameters_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 652 "../../asn1/h225/h225.cnf" +#line 650 "../../asn1/h225/h225.cnf" gef_ctx_t *parent_gefx; parent_gefx = gef_ctx_get(actx->private_data); @@ -3875,7 +3873,7 @@ dissect_h225_T_parameters_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac offset = dissect_h225_EnumeratedParameter(tvb, offset, actx, tree, hf_index); -#line 657 "../../asn1/h225/h225.cnf" +#line 655 "../../asn1/h225/h225.cnf" actx->private_data = parent_gefx; return offset; @@ -3904,7 +3902,7 @@ static const per_sequence_t GenericData_sequence[] = { int dissect_h225_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 638 "../../asn1/h225/h225.cnf" +#line 636 "../../asn1/h225/h225.cnf" void *priv_data = actx->private_data; gef_ctx_t *gefx; @@ -3918,7 +3916,7 @@ dissect_h225_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h225_GenericData, GenericData_sequence); -#line 648 "../../asn1/h225/h225.cnf" +#line 646 "../../asn1/h225/h225.cnf" actx->private_data = priv_data; return offset; @@ -3957,13 +3955,13 @@ dissect_h225_CircuitInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ static int dissect_h225_FeatureDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 662 "../../asn1/h225/h225.cnf" +#line 660 "../../asn1/h225/h225.cnf" void *priv_data = actx->private_data; actx->private_data = gef_ctx_alloc(NULL, "FeatureDescriptor"); offset = dissect_h225_GenericData(tvb, offset, actx, tree, hf_index); -#line 665 "../../asn1/h225/h225.cnf" +#line 663 "../../asn1/h225/h225.cnf" actx->private_data = priv_data; return offset; @@ -4238,7 +4236,7 @@ dissect_h225_Connect_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U h225_pi->cs_type = H225_CONNECT; if (contains_faststart == TRUE ) g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label); - else + else g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); return offset; @@ -4277,7 +4275,7 @@ dissect_h225_Alerting_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ h225_pi->cs_type = H225_ALERTING; if (contains_faststart == TRUE ) g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label); - else + else g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); return offset; @@ -4419,9 +4417,9 @@ static const per_choice_t ReleaseCompleteReason_choice[] = { int dissect_h225_ReleaseCompleteReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 537 "../../asn1/h225/h225.cnf" +#line 535 "../../asn1/h225/h225.cnf" gint32 value; - + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, ett_h225_ReleaseCompleteReason, ReleaseCompleteReason_choice, &value); @@ -4496,9 +4494,9 @@ static const per_choice_t FacilityReason_choice[] = { static int dissect_h225_FacilityReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 461 "../../asn1/h225/h225.cnf" +#line 459 "../../asn1/h225/h225.cnf" gint32 value; - + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, ett_h225_FacilityReason, FacilityReason_choice, &value); @@ -4603,7 +4601,7 @@ dissect_h225_Progress_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ h225_pi->cs_type = H225_PROGRESS; if (contains_faststart == TRUE ) g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label); - else + else g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); return offset; @@ -4778,7 +4776,7 @@ dissect_h225_T_h323_message_body(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int dissect_h225_T_h4501SupplementaryService_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 558 "../../asn1/h225/h225.cnf" +#line 556 "../../asn1/h225/h225.cnf" tvbuff_t *h4501_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -4875,7 +4873,7 @@ dissect_h225_CallLinkage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ static int dissect_h225_T_messageContent_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 580 "../../asn1/h225/h225.cnf" +#line 578 "../../asn1/h225/h225.cnf" tvbuff_t *next_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -4911,7 +4909,7 @@ static const per_sequence_t T_tunnelledSignallingMessage_sequence[] = { static int dissect_h225_T_tunnelledSignallingMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 578 "../../asn1/h225/h225.cnf" +#line 576 "../../asn1/h225/h225.cnf" tp_handle = NULL; offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -5749,9 +5747,9 @@ static const per_choice_t GatekeeperRejectReason_choice[] = { static int dissect_h225_GatekeeperRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 468 "../../asn1/h225/h225.cnf" +#line 466 "../../asn1/h225/h225.cnf" gint32 value; - + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, ett_h225_GatekeeperRejectReason, GatekeeperRejectReason_choice, &value); @@ -6051,7 +6049,7 @@ static const per_choice_t RegistrationRejectReason_choice[] = { static int dissect_h225_RegistrationRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 523 "../../asn1/h225/h225.cnf" +#line 521 "../../asn1/h225/h225.cnf" gint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -6114,9 +6112,9 @@ static const per_choice_t UnregRequestReason_choice[] = { static int dissect_h225_UnregRequestReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 475 "../../asn1/h225/h225.cnf" +#line 473 "../../asn1/h225/h225.cnf" gint32 value; - + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, ett_h225_UnregRequestReason, UnregRequestReason_choice, &value); @@ -6199,7 +6197,7 @@ static const per_choice_t UnregRejectReason_choice[] = { static int dissect_h225_UnregRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 482 "../../asn1/h225/h225.cnf" +#line 480 "../../asn1/h225/h225.cnf" gint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -6467,7 +6465,7 @@ static const per_choice_t AdmissionRejectReason_choice[] = { static int dissect_h225_AdmissionRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 509 "../../asn1/h225/h225.cnf" +#line 507 "../../asn1/h225/h225.cnf" gint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -6599,7 +6597,7 @@ static const per_choice_t BandRejectReason_choice[] = { static int dissect_h225_BandRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 489 "../../asn1/h225/h225.cnf" +#line 487 "../../asn1/h225/h225.cnf" gint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -6651,9 +6649,9 @@ static const per_choice_t DisengageReason_choice[] = { static int dissect_h225_DisengageReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 496 "../../asn1/h225/h225.cnf" +#line 494 "../../asn1/h225/h225.cnf" gint32 value; - + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, ett_h225_DisengageReason, DisengageReason_choice, &value); @@ -6738,9 +6736,9 @@ static const per_choice_t DisengageRejectReason_choice[] = { static int dissect_h225_DisengageRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 502 "../../asn1/h225/h225.cnf" +#line 500 "../../asn1/h225/h225.cnf" gint32 value; - + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, ett_h225_DisengageRejectReason, DisengageRejectReason_choice, &value); @@ -6884,7 +6882,7 @@ static const per_choice_t LocationRejectReason_choice[] = { static int dissect_h225_LocationRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 516 "../../asn1/h225/h225.cnf" +#line 514 "../../asn1/h225/h225.cnf" gint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -7255,9 +7253,9 @@ static const per_choice_t InfoRequestNakReason_choice[] = { static int dissect_h225_InfoRequestNakReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 530 "../../asn1/h225/h225.cnf" +#line 528 "../../asn1/h225/h225.cnf" gint32 value; - + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, ett_h225_InfoRequestNakReason, InfoRequestNakReason_choice, &value); diff --git a/epan/dissectors/packet-nbap.c b/epan/dissectors/packet-nbap.c index 089996d58d..7fd53c7ed9 100644 --- a/epan/dissectors/packet-nbap.c +++ b/epan/dissectors/packet-nbap.c @@ -8691,7 +8691,7 @@ dissect_nbap_E_DCH_MACdFlow_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac 0U, maxNrOfEDCHMACdFlows_1, &e_dch_macdflow_id, FALSE); - + return offset; @@ -10032,7 +10032,7 @@ dissect_nbap_AddorDeleteIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int dissect_nbap_CFN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2153 "../../asn1/nbap/nbap.cnf" +#line 2136 "../../asn1/nbap/nbap.cnf" offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 255U, &cfn, FALSE); @@ -10285,7 +10285,7 @@ dissect_nbap_AvailabilityStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a static int dissect_nbap_HSDSCH_RNTI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2119 "../../asn1/nbap/nbap.cnf" +#line 2102 "../../asn1/nbap/nbap.cnf" umts_fp_conversation_info_t *umts_fp_conversation_info = NULL; address null_addr; conversation_t *conversation = NULL; @@ -10312,7 +10312,7 @@ int i; } } } - + return offset; @@ -11504,7 +11504,7 @@ dissect_nbap_Common_E_DCH_Resource_Combination_InfoList(tvbuff_t *tvb _U_, int o static int dissect_nbap_Common_MACFlow_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1976 "../../asn1/nbap/nbap.cnf" +#line 1961 "../../asn1/nbap/nbap.cnf" offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, maxNrOfCommonMACFlows_1, &common_macdflow_id, FALSE); @@ -11638,12 +11638,12 @@ dissect_nbap_E_DCH_MACdFlow_Multiplexing_List(tvbuff_t *tvb _U_, int offset _U_, static int dissect_nbap_LogicalChannelID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1632 "../../asn1/nbap/nbap.cnf" +#line 1619 "../../asn1/nbap/nbap.cnf" /* Set logical channel id for this entry*/ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 1U, 15U, &logical_channel_id, FALSE); - + nbap_edch_channel_info[e_dch_macdflow_id].lchId[num_items-1] = logical_channel_id; @@ -11657,7 +11657,7 @@ dissect_nbap_LogicalChannelID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act static int dissect_nbap_MAC_PDU_SizeExtended(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1731 "../../asn1/nbap/nbap.cnf" +#line 1717 "../../asn1/nbap/nbap.cnf" offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 1U, 1504U, NULL, TRUE); @@ -12080,12 +12080,12 @@ static const per_sequence_t CommonMACFlow_Specific_InfoItem_sequence[] = { static int dissect_nbap_CommonMACFlow_Specific_InfoItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1983 "../../asn1/nbap/nbap.cnf" +#line 1968 "../../asn1/nbap/nbap.cnf" address dst_addr; transportLayerAddress_ipv4 = 0; BindingID_port = 0; num_items++; - + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_nbap_CommonMACFlow_Specific_InfoItem, CommonMACFlow_Specific_InfoItem_sequence); @@ -12095,15 +12095,13 @@ dissect_nbap_CommonMACFlow_Specific_InfoItem(tvbuff_t *tvb _U_, int offset _U_, return offset; } - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&transportLayerAddress_ipv4; + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); /* Set address for collection of common entries */ COPY_ADDRESS(&(nbap_common_channel_info[common_macdflow_id].crnc_address),&dst_addr); nbap_common_channel_info[common_macdflow_id].crnc_port = BindingID_port; - - + + return offset; @@ -12127,7 +12125,7 @@ dissect_nbap_CommonMACFlow_Specific_InfoList(tvbuff_t *tvb _U_, int offset _U_, static int dissect_nbap_MACdPDU_Size(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1623 "../../asn1/nbap/nbap.cnf" +#line 1610 "../../asn1/nbap/nbap.cnf" offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 1U, 5000U, &MACdPDU_Size, TRUE); @@ -13347,7 +13345,7 @@ dissect_nbap_CriticalityDiagnostics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ static int dissect_nbap_CRNC_CommunicationContextID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2093 "../../asn1/nbap/nbap.cnf" +#line 2076 "../../asn1/nbap/nbap.cnf" offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 1048575U, &com_context_id, FALSE); @@ -14799,7 +14797,7 @@ dissect_nbap_T_dCH_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p static int dissect_nbap_TransportFormatSet_NrOfTransportBlocks(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1064 "../../asn1/nbap/nbap.cnf" +#line 1058 "../../asn1/nbap/nbap.cnf" guint32 NrOfTransportBlocks; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, @@ -14816,13 +14814,13 @@ guint32 NrOfTransportBlocks; nbap_dch_chnl_info[dch_id].num_dl_chans++; nbap_dch_chnl_info[dch_id].dl_chan_num_tbs[num_items-1] = NrOfTransportBlocks; break; - case NBAP_CPCH: + case NBAP_CPCH: nbap_dch_chnl_info[commonphysicalchannelid].num_ul_chans++; nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_num_tbs[num_items-1] = NrOfTransportBlocks; nbap_dch_chnl_info[commonphysicalchannelid].num_dl_chans++; nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_num_tbs[num_items-1] = NrOfTransportBlocks; break; - case NBAP_PCH: + case NBAP_PCH: nbap_dch_chnl_info[commontransportchannelid].num_ul_chans++; nbap_dch_chnl_info[commontransportchannelid].ul_chan_num_tbs[num_items-1] = NrOfTransportBlocks; nbap_dch_chnl_info[commontransportchannelid].num_dl_chans++; @@ -14842,7 +14840,7 @@ guint32 NrOfTransportBlocks; static int dissect_nbap_TransportFormatSet_TransportBlockSize(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1096 "../../asn1/nbap/nbap.cnf" +#line 1090 "../../asn1/nbap/nbap.cnf" guint32 TransportBlockSize; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, @@ -14970,7 +14968,7 @@ static const per_sequence_t TransportFormatSet_DynamicPartList_item_sequence[] = static int dissect_nbap_TransportFormatSet_DynamicPartList_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1060 "../../asn1/nbap/nbap.cnf" +#line 1054 "../../asn1/nbap/nbap.cnf" num_items++; @@ -14988,7 +14986,7 @@ static const per_sequence_t TransportFormatSet_DynamicPartList_sequence_of[1] = static int dissect_nbap_TransportFormatSet_DynamicPartList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1057 "../../asn1/nbap/nbap.cnf" +#line 1051 "../../asn1/nbap/nbap.cnf" num_items = 0; @@ -15159,7 +15157,7 @@ dissect_nbap_TransportFormatSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a static int dissect_nbap_T_ul_TransportFormatSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1035 "../../asn1/nbap/nbap.cnf" +#line 1029 "../../asn1/nbap/nbap.cnf" transportFormatSet_type = NBAP_DCH_UL; nbap_dch_chnl_info[dch_id].num_ul_chans = 0; @@ -15173,7 +15171,7 @@ dissect_nbap_T_ul_TransportFormatSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx static int dissect_nbap_T_dl_TransportFormatSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1039 "../../asn1/nbap/nbap.cnf" +#line 1033 "../../asn1/nbap/nbap.cnf" transportFormatSet_type = NBAP_DCH_DL; nbap_dch_chnl_info[dch_id].num_dl_chans = 0; @@ -15223,14 +15221,14 @@ static const per_sequence_t DCH_Specific_FDD_Item_sequence[] = { static int dissect_nbap_DCH_Specific_FDD_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1029 "../../asn1/nbap/nbap.cnf" +#line 1023 "../../asn1/nbap/nbap.cnf" g_num_dch_in_flow++; offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_nbap_DCH_Specific_FDD_Item, DCH_Specific_FDD_Item_sequence); -#line 1032 "../../asn1/nbap/nbap.cnf" +#line 1026 "../../asn1/nbap/nbap.cnf" prev_dch_id = dch_id; @@ -15244,7 +15242,7 @@ static const per_sequence_t DCH_Specific_FDD_InformationList_sequence_of[1] = { static int dissect_nbap_DCH_Specific_FDD_InformationList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1025 "../../asn1/nbap/nbap.cnf" +#line 1019 "../../asn1/nbap/nbap.cnf" g_num_dch_in_flow = 0; prev_dch_id = 0; @@ -15538,7 +15536,7 @@ dissect_nbap_T_dCH_ID_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ static int dissect_nbap_T_ul_TransportFormatSet_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1043 "../../asn1/nbap/nbap.cnf" +#line 1037 "../../asn1/nbap/nbap.cnf" transportFormatSet_type = NBAP_DCH_UL; nbap_dch_chnl_info[dch_id].num_ul_chans = 0; @@ -15552,7 +15550,7 @@ dissect_nbap_T_ul_TransportFormatSet_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ static int dissect_nbap_T_dl_TransportFormatSet_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1047 "../../asn1/nbap/nbap.cnf" +#line 1041 "../../asn1/nbap/nbap.cnf" transportFormatSet_type = NBAP_DCH_DL; nbap_dch_chnl_info[dch_id].num_dl_chans = 0; @@ -15608,7 +15606,7 @@ static const per_sequence_t FDD_DCHs_to_ModifyItem_sequence[] = { static int dissect_nbap_FDD_DCHs_to_ModifyItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1123 "../../asn1/nbap/nbap.cnf" +#line 1117 "../../asn1/nbap/nbap.cnf" offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_nbap_FDD_DCHs_to_ModifyItem, FDD_DCHs_to_ModifyItem_sequence); @@ -18030,7 +18028,7 @@ dissect_nbap_E_DCH_HARQ_Combining_Capability(tvbuff_t *tvb _U_, int offset _U_, static int dissect_nbap_E_DCH_DDI_Value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1613 "../../asn1/nbap/nbap.cnf" +#line 1600 "../../asn1/nbap/nbap.cnf" offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 62U, &e_dch_ddi_value, FALSE); @@ -18164,7 +18162,7 @@ static const per_sequence_t E_DCH_LogicalChannelInformationItem_sequence[] = { static int dissect_nbap_E_DCH_LogicalChannelInformationItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1610 "../../asn1/nbap/nbap.cnf" +#line 1597 "../../asn1/nbap/nbap.cnf" num_items++; @@ -18181,7 +18179,7 @@ static const per_sequence_t E_DCH_LogicalChannelInformation_sequence_of[1] = { static int dissect_nbap_E_DCH_LogicalChannelInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1603 "../../asn1/nbap/nbap.cnf" +#line 1590 "../../asn1/nbap/nbap.cnf" num_items = 0; offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, @@ -18214,7 +18212,7 @@ static const per_sequence_t E_DCH_MACdFlow_Specific_InfoItem_sequence[] = { static int dissect_nbap_E_DCH_MACdFlow_Specific_InfoItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1362 "../../asn1/nbap/nbap.cnf" +#line 1352 "../../asn1/nbap/nbap.cnf" umts_fp_conversation_info_t *p_conv_data = NULL; address null_addr; conversation_t *p_conv; @@ -18227,7 +18225,7 @@ guint32 no_ddi_entries, i; { return offset; } - + /* Check if we have conversation info */ SET_ADDRESS(&null_addr, AT_NONE, 0, NULL); p_conv = find_conversation(actx->pinfo->fd->num, &nbap_edch_channel_info[e_dch_macdflow_id].crnc_address, &null_addr, @@ -18246,21 +18244,21 @@ guint32 no_ddi_entries, i; p_conv_data->edch_ddi[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i]; p_conv_data->edch_macd_pdu_size[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i]; - p_conv_data->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]; /*lchId_type_table[nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]];*/ + p_conv_data->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]; /*lchId_type_table[nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]];*/ /*g_print("E-DCH-MACdFlow-Specific-InfoItem: e_dch_macdflow_id %u edch_ddi %u edch_macd_pdu_size %u\n", - e_dch_macdflow_id, + e_dch_macdflow_id, nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i], nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i] );*/ } - + /* COPY_ADDRESS(&(nbap_edch_port_info->crnc_address[e_dch_macdflow_id]),&dst_addr);*/ p_conv_data->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present; - + /* Figure out which type of E-DCH frame, based on DDI value (DDI = 0 => type 2)*/ if( 0 == e_dch_ddi_value ){ p_conv_data->edch_type = 1; /* 1 means T2 */ - }else{ + }else{ /*Value 1-5 means T1*/ p_conv_data->edch_type = 0; /* 0 means T1 */ } @@ -18397,7 +18395,7 @@ static const per_sequence_t E_DCH_LogicalChannelToModifyItem_sequence[] = { static int dissect_nbap_E_DCH_LogicalChannelToModifyItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1598 "../../asn1/nbap/nbap.cnf" +#line 1585 "../../asn1/nbap/nbap.cnf" offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_nbap_E_DCH_LogicalChannelToModifyItem, E_DCH_LogicalChannelToModifyItem_sequence); @@ -18472,7 +18470,7 @@ static const per_sequence_t E_DCH_MACdFlow_Specific_InfoItem_to_Modify_sequence[ static int dissect_nbap_E_DCH_MACdFlow_Specific_InfoItem_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1506 "../../asn1/nbap/nbap.cnf" +#line 1493 "../../asn1/nbap/nbap.cnf" guint32 no_ddi_entries, i; address null_addr; nbap_edch_port_info_t *old_info; @@ -18483,15 +18481,15 @@ num_items = 1; offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_nbap_E_DCH_MACdFlow_Specific_InfoItem_to_Modify, E_DCH_MACdFlow_Specific_InfoItem_to_Modify_sequence); - + if (actx->pinfo->fd->flags.visited) { return offset; } - + nbap_debug1("Frame %u E-DCH-MACdFlow-Specific-InfoItem-to-Modify", actx->pinfo->fd->num); - + /****** Look up old port and ip information since this is not included in this message ******/ /*Find proper communication context ID*/ if(crcn_context_present){ @@ -18511,7 +18509,7 @@ num_items = 1; return offset; } nbap_debug1(" Found com_context_id %u", com_context_id); - + /*Set the appropriate port, cheat and use same variable.*/ BindingID_port = old_info->crnc_port[e_dch_macdflow_id]; @@ -18521,7 +18519,7 @@ num_items = 1; /*TODO: Fix this for ipv6 as well!*/ transportLayerAddress_ipv4 = old_info->crnc_address; - + /*Do the configurations*/ /* Check if we have conversation info */ SET_ADDRESS(&null_addr, AT_NONE, 0, NULL); @@ -18541,28 +18539,28 @@ num_items = 1; p_conv_data->edch_ddi[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i]; p_conv_data->edch_macd_pdu_size[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i]; - p_conv_data->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]; /*lchId_type_table[nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]];*/ + p_conv_data->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]; /*lchId_type_table[nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]];*/ /* g_print("E-DCH-MACdFlow-Specific-InfoItem: e_dch_macdflow_id %u edch_ddi %u edch_macd_pdu_size %u\n", - e_dch_macdflow_id, + e_dch_macdflow_id, nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i], nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i] );*/ } - + /* COPY_ADDRESS(&(nbap_edch_port_info->crnc_address[e_dch_macdflow_id]),&dst_addr);*/ p_conv_data->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present; - + /* Figure out which type of E-DCH frame, based on DDI value (DDI = 0 => type 2)*/ if( 0 == e_dch_ddi_value ){ p_conv_data->edch_type = 1; /* 1 means T2 */ - }else{ + }else{ /*Value 1-5 means T1*/ p_conv_data->edch_type = 0; /* 0 means T1 */ } /* use to display e_dch_macdflow_id */ p_conv_data->num_dch_in_flow = 1; p_conv_data->dchs_in_flow_list[0] = e_dch_macdflow_id; - + @@ -18614,7 +18612,7 @@ static const per_sequence_t E_DCH_FDD_Information_to_Modify_sequence[] = { static int dissect_nbap_E_DCH_FDD_Information_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1415 "../../asn1/nbap/nbap.cnf" +#line 1405 "../../asn1/nbap/nbap.cnf" address dst_addr, null_addr; conversation_t *conversation,*old_conversation = NULL; @@ -18626,7 +18624,7 @@ BindingID_port = 0; offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_nbap_E_DCH_FDD_Information_to_Modify, E_DCH_FDD_Information_to_Modify_sequence); - + if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0) { return offset; @@ -18637,27 +18635,24 @@ BindingID_port = 0; * */ SET_ADDRESS(&null_addr, AT_NONE, 0, NULL); - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&transportLayerAddress_ipv4; - - + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); + old_conversation = find_conversation(actx->pinfo->fd->num,&dst_addr, &null_addr, PT_UDP, BindingID_port, 0, NO_ADDR_B|NO_PORT_B); if(old_conversation){ - nbap_debug3("Frame %u E-DCH-FDD-Information-to-Modify: found old conv on IP %s Port %u", - actx->pinfo->fd->num, + nbap_debug3("Frame %u E-DCH-FDD-Information-to-Modify: found old conv on IP %s Port %u", + actx->pinfo->fd->num, ep_address_to_str(&dst_addr), BindingID_port); }else{ - nbap_debug3("Frame %u E-DCH-FDD-Information-to-Modify: Did not find old conv on IP %s Port %u", - actx->pinfo->fd->num, + nbap_debug3("Frame %u E-DCH-FDD-Information-to-Modify: Did not find old conv on IP %s Port %u", + actx->pinfo->fd->num, ep_address_to_str(&dst_addr), BindingID_port); } - + /* It's not part of any conversation - create a new one. */ conversation = conversation_new(actx->pinfo->fd->num, &dst_addr, &null_addr, PT_UDP,BindingID_port , @@ -18669,7 +18664,7 @@ BindingID_port = 0; umts_fp_conversation_info = se_new0(umts_fp_conversation_info_t); /*Steal the old informatoin*/ memcpy(umts_fp_conversation_info,conversation_get_proto_data(old_conversation, proto_fp),sizeof(umts_fp_conversation_info_t)); - + /* Overwrite the data */ umts_fp_conversation_info->iface_type = IuB_Interface; umts_fp_conversation_info->division = Division_FDD; @@ -18681,8 +18676,8 @@ BindingID_port = 0; umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN; - - + + if(crcn_context_present){ umts_fp_conversation_info->com_context_id = com_context_id; }else{ @@ -18693,15 +18688,15 @@ BindingID_port = 0; expert_add_info_format(actx->pinfo, NULL, PI_MALFORMED, PI_WARN, "Couldn't not set Communication Context-ID, fragments over reconfigured channels might fail"); } } - + /* Set address for collection of DDI entries */ COPY_ADDRESS(&(nbap_edch_channel_info[e_dch_macdflow_id].crnc_address),&dst_addr); nbap_edch_channel_info[e_dch_macdflow_id].crnc_port = BindingID_port; - - + + /*Indicate that the frag table has to be reset*/ umts_fp_conversation_info->reset_frag = TRUE; - + set_umts_fp_conv_data(conversation, umts_fp_conversation_info); } @@ -23194,7 +23189,7 @@ static const value_string nbap_PICH_Mode_vals[] = { static int dissect_nbap_PICH_Mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 796 "../../asn1/nbap/nbap.cnf" +#line 794 "../../asn1/nbap/nbap.cnf" guint32 PICH_Mode = 0; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 4, &PICH_Mode, TRUE, 0, NULL); @@ -23215,7 +23210,7 @@ guint32 PICH_Mode = 0; break; } - + @@ -23309,7 +23304,7 @@ static const per_sequence_t HSDSCH_Common_System_InformationFDD_sequence[] = { static int dissect_nbap_HSDSCH_Common_System_InformationFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2005 "../../asn1/nbap/nbap.cnf" +#line 1988 "../../asn1/nbap/nbap.cnf" /* * 5.1.6 High Speed Downlink Shared Channels * The Data Transfer procedure is used to transfer a HS-DSCH DATA FRAME (TYPE 1, TYPE 2 [FDD and 1.28Mcps @@ -23331,9 +23326,9 @@ int i; for (i = 0; i < maxNrOfCommonMACFlows; i++) { nbap_common_channel_info[i].crnc_port = 0; nbap_common_channel_info[i].rlc_mode = FP_RLC_MODE_UNKNOWN; - + } - + } offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_nbap_HSDSCH_Common_System_InformationFDD, HSDSCH_Common_System_InformationFDD_sequence); @@ -23350,7 +23345,7 @@ int i; conversation = find_conversation(actx->pinfo->fd->num, &(nbap_common_channel_info[i].crnc_address), &null_addr, PT_UDP, nbap_common_channel_info[i].crnc_port, 0, NO_ADDR_B); - + if (conversation == NULL) { conversation = conversation_new(actx->pinfo->fd->num, &(nbap_common_channel_info[i].crnc_address), &null_addr, PT_UDP, nbap_common_channel_info[i].crnc_port, @@ -23360,30 +23355,30 @@ int i; conversation_set_dissector(conversation, fp_handle); /*Set NBAP configuration to lower layers*/ if(actx->pinfo->link_dir==P2P_DIR_DL){ - + umts_fp_conversation_info = se_new0(umts_fp_conversation_info_t); /*Select frame type = 3 according to paragraph 5.1.6 in 3GPP TS 25.435*/ umts_fp_conversation_info->channel = CHANNEL_HSDSCH_COMMON; umts_fp_conversation_info->division = Division_FDD; - + umts_fp_conversation_info->dl_frame_number = 0; umts_fp_conversation_info->ul_frame_number = actx->pinfo->fd->num; SE_COPY_ADDRESS(&(umts_fp_conversation_info->crnc_address), &nbap_common_channel_info[i].crnc_address); umts_fp_conversation_info->crnc_port = nbap_common_channel_info[i].crnc_port; - + /*umts_fp_conversation_info->hsdsch_macdflow_id = i ;*/ /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/ umts_fp_conversation_info->common_macdflow_id = common_macdflow_id; - + umts_fp_conversation_info->hsdsch_entity = ehs; - + umts_fp_conversation_info->num_dch_in_flow++; umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i; - + set_umts_fp_conv_data(conversation, umts_fp_conversation_info); } - + } - + } @@ -23470,7 +23465,7 @@ static const per_sequence_t HSDSCH_MACdFlow_Specific_InfoItem_sequence[] = { static int dissect_nbap_HSDSCH_MACdFlow_Specific_InfoItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1708 "../../asn1/nbap/nbap.cnf" +#line 1695 "../../asn1/nbap/nbap.cnf" address dst_addr; @@ -23481,20 +23476,19 @@ dissect_nbap_HSDSCH_MACdFlow_Specific_InfoItem(tvbuff_t *tvb _U_, int offset _U_ ett_nbap_HSDSCH_MACdFlow_Specific_InfoItem, HSDSCH_MACdFlow_Specific_InfoItem_sequence); - + if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0) { return offset; } - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&transportLayerAddress_ipv4; + + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); /* Set address for collection of HSDSCH entries */ COPY_ADDRESS(&(nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_address),&dst_addr); nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_port = BindingID_port; - - + + return offset; @@ -23574,7 +23568,7 @@ static const value_string nbap_RLC_Mode_vals[] = { static int dissect_nbap_RLC_Mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1640 "../../asn1/nbap/nbap.cnf" +#line 1627 "../../asn1/nbap/nbap.cnf" guint32 rlc_mode; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, @@ -23615,7 +23609,7 @@ static const per_sequence_t PriorityQueue_InfoItem_sequence[] = { static int dissect_nbap_PriorityQueue_InfoItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1699 "../../asn1/nbap/nbap.cnf" +#line 1686 "../../asn1/nbap/nbap.cnf" num_items++; @@ -23649,14 +23643,14 @@ static const per_sequence_t HSDSCH_MACdFlows_Information_sequence[] = { static int dissect_nbap_HSDSCH_MACdFlows_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1664 "../../asn1/nbap/nbap.cnf" +#line 1651 "../../asn1/nbap/nbap.cnf" int protocol_ie_id; guint32 i; num_items = 0; protocol_ie_id = ProtocolIE_ID; - - + + /*Handle special cases, when the tree is weird, ie. no useful message appears in the tree, like HSDHSCH-Information-FDD */ switch(protocol_ie_id){ /*This flow must also be added*/ @@ -23674,7 +23668,7 @@ dissect_nbap_HSDSCH_MACdFlows_Information(tvbuff_t *tvb _U_, int offset _U_, asn ett_nbap_HSDSCH_MACdFlows_Information, HSDSCH_MACdFlows_Information_sequence); add_hsdsch_bind(actx->pinfo,tree); - + break; default: offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -23692,7 +23686,7 @@ dissect_nbap_HSDSCH_MACdFlows_Information(tvbuff_t *tvb _U_, int offset _U_, asn static int dissect_nbap_T_hSDSCH_Physical_Layer_Category(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1657 "../../asn1/nbap/nbap.cnf" +#line 1644 "../../asn1/nbap/nbap.cnf" guint32 hsdsch_physical_layer_category; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, @@ -23760,7 +23754,7 @@ static const per_sequence_t HSDSCH_FDD_Information_sequence[] = { static int dissect_nbap_HSDSCH_FDD_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1761 "../../asn1/nbap/nbap.cnf" +#line 1747 "../../asn1/nbap/nbap.cnf" /* * Collect the information about the HSDSCH MACdFlows set up conversation(s) and set the conversation data. */ @@ -23793,14 +23787,14 @@ dissect_nbap_HSDSCH_FDD_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ if (nbap_hsdsch_channel_info[i].crnc_port != 0){ nbap_debug4("Frame %u HSDSCH-MACdFlows-Information:hsdsch_macdflow_id %u Look for conv on IP %s Port %u", actx->pinfo->fd->num, - i, + i, ep_address_to_str (&(nbap_hsdsch_channel_info[i].crnc_address)), nbap_hsdsch_channel_info[i].crnc_port); conversation = find_conversation(actx->pinfo->fd->num, &(nbap_hsdsch_channel_info[i].crnc_address), &null_addr, PT_UDP, nbap_hsdsch_channel_info[i].crnc_port, 0, NO_ADDR_B); - + if (conversation == NULL) { /* It's not part of any conversation - create a new one. */ nbap_debug2("Frame %u HSDSCH-MACdFlows-Information: Set up conv on Port %u", actx->pinfo->fd->num, nbap_hsdsch_channel_info[i].crnc_port); @@ -23810,7 +23804,7 @@ dissect_nbap_HSDSCH_FDD_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ /* Set dissector */ conversation_set_dissector(conversation, fp_handle); - + if(actx->pinfo->link_dir==P2P_DIR_DL){ umts_fp_conversation_info = se_new0(umts_fp_conversation_info_t); /* Fill in the HSDSCH relevant data */ @@ -23822,10 +23816,10 @@ dissect_nbap_HSDSCH_FDD_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ umts_fp_conversation_info->ul_frame_number = actx->pinfo->fd->num; SE_COPY_ADDRESS(&(umts_fp_conversation_info->crnc_address), &nbap_hsdsch_channel_info[i].crnc_address); umts_fp_conversation_info->crnc_port = nbap_hsdsch_channel_info[i].crnc_port; - + /*Added june 3, normally just the iterator variable*/ umts_fp_conversation_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/ - + /*Added july 2012*/ umts_fp_conversation_info->com_context_id = com_context_id; @@ -23833,9 +23827,9 @@ dissect_nbap_HSDSCH_FDD_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ umts_fp_conversation_info->num_dch_in_flow++; umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i; - /*XXX: Is this craziness, what is physical_layer? */ + /*XXX: Is this craziness, what is physical_layer? */ if(nbap_hsdsch_channel_info[i].entity == entity_not_specified ){ - + if(nbap_hsdsch_channel_info[i].hsdsch_physical_layer_category > 12){ umts_fp_conversation_info->hsdsch_entity = ehs; }else{ @@ -23897,12 +23891,12 @@ static const per_sequence_t HSDSCH_MACdFlow_Specific_InfoItem_to_Modify_sequence static int dissect_nbap_HSDSCH_MACdFlow_Specific_InfoItem_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1850 "../../asn1/nbap/nbap.cnf" +#line 1836 "../../asn1/nbap/nbap.cnf" address dst_addr; transportLayerAddress_ipv4 = 0; BindingID_port = 0; num_items++; - + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_nbap_HSDSCH_MACdFlow_Specific_InfoItem_to_Modify, HSDSCH_MACdFlow_Specific_InfoItem_to_Modify_sequence); @@ -23911,15 +23905,14 @@ dissect_nbap_HSDSCH_MACdFlow_Specific_InfoItem_to_Modify(tvbuff_t *tvb _U_, int { return offset; } - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&transportLayerAddress_ipv4; + + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); /* Set address for collection of HSDSCH entries */ COPY_ADDRESS(&(nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_address),&dst_addr); nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_port = BindingID_port; - - + + return offset; @@ -23956,7 +23949,7 @@ static const per_sequence_t PriorityQueue_InfoItem_to_Add_sequence[] = { static int dissect_nbap_PriorityQueue_InfoItem_to_Add(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1702 "../../asn1/nbap/nbap.cnf" +#line 1689 "../../asn1/nbap/nbap.cnf" num_items = 1; @@ -24091,12 +24084,12 @@ static const per_sequence_t HSDSCH_Information_to_Modify_sequence[] = { static int dissect_nbap_HSDSCH_Information_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1871 "../../asn1/nbap/nbap.cnf" +#line 1856 "../../asn1/nbap/nbap.cnf" /* * This is pretty much the same like if we setup a previous flow - */ + */ -/* +/* * Collect the information about the HSDSCH MACdFlows set up conversation(s) and set the conversation data. */ address null_addr; @@ -24131,14 +24124,14 @@ dissect_nbap_HSDSCH_Information_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn for (i = 0; i < maxNrOfMACdFlows; i++) { if (nbap_hsdsch_channel_info[i].crnc_port != 0){ nbap_debug3(" hsdsch_macdflow_id %u Look for conv on IP %s Port %u", - i, + i, ep_address_to_str (&(nbap_hsdsch_channel_info[i].crnc_address)), nbap_hsdsch_channel_info[i].crnc_port); conversation = find_conversation(actx->pinfo->fd->num, &(nbap_hsdsch_channel_info[i].crnc_address), &null_addr, PT_UDP, nbap_hsdsch_channel_info[i].crnc_port, 0, NO_ADDR_B); - + if (conversation == NULL) { /* It's not part of any conversation - create a new one. */ nbap_debug1(" Set up conv on Port %u", nbap_hsdsch_channel_info[i].crnc_port); @@ -24149,7 +24142,7 @@ dissect_nbap_HSDSCH_Information_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn /* Set dissector */ conversation_set_dissector(conversation, fp_handle); - + if(actx->pinfo->link_dir==P2P_DIR_DL){ umts_fp_conversation_info = se_new0(umts_fp_conversation_info_t); /* Fill in the HSDSCH relevant data */ @@ -24161,10 +24154,10 @@ dissect_nbap_HSDSCH_Information_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn umts_fp_conversation_info->ul_frame_number = actx->pinfo->fd->num; SE_COPY_ADDRESS(&(umts_fp_conversation_info->crnc_address), &nbap_hsdsch_channel_info[i].crnc_address); umts_fp_conversation_info->crnc_port = nbap_hsdsch_channel_info[i].crnc_port; - + /*Added june 3, normally just the iterator variable*/ umts_fp_conversation_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/ - + /*Added july 2012*/ umts_fp_conversation_info->com_context_id = com_context_id; @@ -24172,7 +24165,7 @@ dissect_nbap_HSDSCH_Information_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn umts_fp_conversation_info->num_dch_in_flow++; umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i; - /*XXX: Is this craziness, what is physical_layer? */ + /*XXX: Is this craziness, what is physical_layer? */ if(nbap_hsdsch_channel_info[i].entity == entity_not_specified ){ if(nbap_hsdsch_channel_info[i].hsdsch_physical_layer_category > 12){ @@ -24183,12 +24176,12 @@ dissect_nbap_HSDSCH_Information_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn }else{ umts_fp_conversation_info->hsdsch_entity = nbap_hsdsch_channel_info[i].entity; } - + umts_fp_conversation_info->rlc_mode = nbap_hsdsch_channel_info[i].rlc_mode; - + /*Indicate that the frag table has to be reset*/ umts_fp_conversation_info->reset_frag = TRUE; - + set_umts_fp_conv_data(conversation, umts_fp_conversation_info); } } @@ -24213,10 +24206,10 @@ static const value_string nbap_HSDSCH_MACdPDUSizeFormat_vals[] = { static int dissect_nbap_HSDSCH_MACdPDUSizeFormat(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1738 "../../asn1/nbap/nbap.cnf" +#line 1724 "../../asn1/nbap/nbap.cnf" /* * Removed 10 Aug. 2012, I'm not sure if this was right, it wrongfully - * set some packets as type 2 for HSDHCH modified items. + * set some packets as type 2 for HSDHCH modified items. **/ @@ -24233,9 +24226,9 @@ dissect_nbap_HSDSCH_MACdPDUSizeFormat(tvbuff_t *tvb _U_, int offset _U_, asn1_ct if (nbap_hsdsch_channel_info[i].crnc_port != 0){ nbap_hsdsch_channel_info[i].entity = ehs; } - + }*/ - + @@ -24324,7 +24317,7 @@ static const per_sequence_t HSDSCH_MACdFlow_Specific_InformationResp_Item_sequen static int dissect_nbap_HSDSCH_MACdFlow_Specific_InformationResp_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1705 "../../asn1/nbap/nbap.cnf" +#line 1692 "../../asn1/nbap/nbap.cnf" num_items++; @@ -24740,7 +24733,7 @@ static const per_sequence_t HSDSCH_Paging_System_InformationFDD_sequence[] = { static int dissect_nbap_HSDSCH_Paging_System_InformationFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2083 "../../asn1/nbap/nbap.cnf" +#line 2066 "../../asn1/nbap/nbap.cnf" /* g_warning("HS-DSCH Type 3 NOT Implemented!"); */ @@ -24934,7 +24927,7 @@ static const per_sequence_t HSDSCH_MACdFlows_to_Delete_Item_sequence[] = { static int dissect_nbap_HSDSCH_MACdFlows_to_Delete_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1696 "../../asn1/nbap/nbap.cnf" +#line 1683 "../../asn1/nbap/nbap.cnf" num_items++; @@ -28049,7 +28042,7 @@ dissect_nbap_NI_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_nbap_NodeB_CommunicationContextID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2097 "../../asn1/nbap/nbap.cnf" +#line 2080 "../../asn1/nbap/nbap.cnf" /*Set up and map that maps Node-B ids to CRNC ids, since often you only have one of them present in nbap*/ nbap_com_context_id_t *cur_val; @@ -28064,7 +28057,7 @@ nbap_com_context_id_t *cur_val; /*If both are avaible we can update the map*/ if(crcn_context_present){ if( (cur_val=g_tree_lookup(com_context_map, GINT_TO_POINTER((gint)node_b_com_context_id))) == NULL ){ - + cur_val = g_new(nbap_com_context_id_t,1); cur_val->crnc_context = com_context_id; cur_val->frame_num = actx->pinfo->fd->num; @@ -28614,7 +28607,7 @@ dissect_nbap_RACH_SubChannelNumbers(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ static int dissect_nbap_T_dCH_id(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1129 "../../asn1/nbap/nbap.cnf" +#line 1123 "../../asn1/nbap/nbap.cnf" offset = dissect_nbap_DCH_ID(tvb, offset, actx, tree, hf_index); @@ -28636,7 +28629,7 @@ static const per_sequence_t RL_Specific_DCH_Info_Item_sequence[] = { static int dissect_nbap_RL_Specific_DCH_Info_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1134 "../../asn1/nbap/nbap.cnf" +#line 1128 "../../asn1/nbap/nbap.cnf" address dst_addr, null_addr; conversation_t *conversation = NULL; umts_fp_conversation_info_t *umts_fp_conversation_info; @@ -28654,17 +28647,15 @@ dch_id = 0xFFFFFFFF; { return offset; } - + /*RBS might sometimes send a nonsens bind, to indicate that no DCH is present*/ if(BindingID_port == NBAP_IGNORE_PORT){ return offset; } - + SET_ADDRESS(&null_addr, AT_NONE, 0, NULL); - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&transportLayerAddress_ipv4; + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); conversation = find_conversation(actx->pinfo->fd->num,&dst_addr, &null_addr, PT_UDP, BindingID_port, @@ -28693,7 +28684,7 @@ dch_id = 0xFFFFFFFF; /* DCH's in this flow */ umts_fp_conversation_info->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present; - + /*Save unique UE-identifier */ umts_fp_conversation_info->com_context_id = com_context_id; @@ -28711,17 +28702,17 @@ dch_id = 0xFFFFFFFF; umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_tf_size[j] = nbap_dch_chnl_info[dch_id].dl_chan_tf_size[j]; umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_num_tbs[j] = nbap_dch_chnl_info[dch_id].dl_chan_num_tbs[j]; } - + /* Set data for associated DCH's if we have any */ i = dch_id; umts_fp_conversation_info->dchs_in_flow_list[0] = dch_id; while(nbap_dch_chnl_info[i].next_dch != 0){ - - + + i = nbap_dch_chnl_info[i].next_dch; umts_fp_conversation_info->num_dch_in_flow++; umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i; /*Set transport channel id*/ - + /*Setting Logical Channel's for this DCH*/ /* Traffic flows per DCH(UL) */ umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].num_ul_chans = num_tf = nbap_dch_chnl_info[i].num_ul_chans; @@ -28736,17 +28727,17 @@ dch_id = 0xFFFFFFFF; umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].dl_chan_tf_size[j] = nbap_dch_chnl_info[i].dl_chan_tf_size[j]; umts_fp_conversation_info->fp_dch_channel_info[umts_fp_conversation_info->num_dch_in_flow].dl_chan_num_tbs[j] = nbap_dch_chnl_info[i].dl_chan_num_tbs[j]; } - + } umts_fp_conversation_info->num_dch_in_flow++; umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i; set_umts_fp_conv_data(conversation, umts_fp_conversation_info); } - + nbap_debug1("Frame %u RL-Specific-DCH-Info-Item Start", actx->pinfo->fd->num); nbap_debug1(" Total no of ch in flow will be: %d", umts_fp_conversation_info->num_dch_in_flow); nbap_debug1("Frame %u RL-Specific-DCH-Info-Item End", actx->pinfo->fd->num); - + } @@ -28782,7 +28773,7 @@ static const per_sequence_t RL_Specific_E_DCH_Information_Item_sequence[] = { static int dissect_nbap_RL_Specific_E_DCH_Information_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1250 "../../asn1/nbap/nbap.cnf" +#line 1242 "../../asn1/nbap/nbap.cnf" address dst_addr, null_addr; conversation_t *conversation; umts_fp_conversation_info_t *umts_fp_conversation_info; @@ -28802,21 +28793,19 @@ BindingID_port = 0; } SET_ADDRESS(&null_addr, AT_NONE, 0, NULL); - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&transportLayerAddress_ipv4; + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); conversation = find_conversation(actx->pinfo->fd->num,&dst_addr, &null_addr, PT_UDP, BindingID_port, 0, NO_ADDR_B|NO_PORT_B); - /* We must also check if this port is about to be overriden, if thats the case we + /* We must also check if this port is about to be overriden, if thats the case we * might already have a DCH entry on this port which should be overwritten */ if (conversation == NULL || ((umts_fp_conversation_info_t*)conversation_get_proto_data(conversation, proto_fp))->channel == CHANNEL_DCH) { - - - + + + /* It's not part of any conversation - create a new one. */ conversation = conversation_new(actx->pinfo->fd->num, &dst_addr, &null_addr, PT_UDP,BindingID_port , @@ -28837,8 +28826,8 @@ BindingID_port = 0; umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN; - - + + if(crcn_context_present){ umts_fp_conversation_info->com_context_id = com_context_id; }else{ @@ -28861,8 +28850,8 @@ BindingID_port = 0; nbap_edch_port_info->crnc_port[e_dch_macdflow_id] = BindingID_port; /*Ip address might be useful as well*/ nbap_edch_port_info->crnc_address = transportLayerAddress_ipv4; - - nbap_debug1("Frame %u RL-Specific-E-DCH-Information-Item Start", + + nbap_debug1("Frame %u RL-Specific-E-DCH-Information-Item Start", actx->pinfo->fd->num); nbap_debug4(" g_tree_insert(edch_flow_port_map) com_context_id %u e_dch_macdflow_id %u IP %s Port %u", @@ -28887,14 +28876,14 @@ BindingID_port = 0; /* Must be same ADDRESS */ old_info->crnc_port[e_dch_macdflow_id] = BindingID_port; } - + set_umts_fp_conv_data(conversation, umts_fp_conversation_info); nbap_debug1("Frame %u RL-Specific-E-DCH-Information-Item End", actx->pinfo->fd->num); } } - + @@ -32349,7 +32338,7 @@ static const per_sequence_t FACH_ParametersItem_CTCH_SetupRqstFDD_sequence[] = { static int dissect_nbap_FACH_ParametersItem_CTCH_SetupRqstFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 930 "../../asn1/nbap/nbap.cnf" +#line 926 "../../asn1/nbap/nbap.cnf" address dst_addr, null_addr; conversation_t *conversation; @@ -32371,9 +32360,7 @@ transportFormatSet_type = NBAP_CPCH; } SET_ADDRESS(&null_addr, AT_NONE, 0, NULL); - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&transportLayerAddress_ipv4; + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); conversation = find_conversation(actx->pinfo->fd->num,&dst_addr, &null_addr, PT_UDP, BindingID_port, @@ -32400,8 +32387,8 @@ transportFormatSet_type = NBAP_CPCH; umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN; /*Save unique UE-identifier */ umts_fp_conversation_info->com_context_id = crcn_context_present ? com_context_id : 1; - - + + /* DCH's in this flow */ umts_fp_conversation_info->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present; /* Set data for First or single channel */ @@ -32469,7 +32456,7 @@ dissect_nbap_FACH_ParametersListIE_CTCH_SetupRqstFDD(tvbuff_t *tvb _U_, int offs static int dissect_nbap_T_transportFormatSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1051 "../../asn1/nbap/nbap.cnf" +#line 1045 "../../asn1/nbap/nbap.cnf" transportFormatSet_type = NBAP_PCH; nbap_dch_chnl_info[commontransportchannelid].num_dl_chans = 0; nbap_dch_chnl_info[commontransportchannelid].num_ul_chans = 0; @@ -32514,7 +32501,7 @@ static const per_sequence_t PCH_ParametersItem_CTCH_SetupRqstFDD_sequence[] = { static int dissect_nbap_PCH_ParametersItem_CTCH_SetupRqstFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 817 "../../asn1/nbap/nbap.cnf" +#line 815 "../../asn1/nbap/nbap.cnf" address dst_addr, null_addr; conversation_t *conversation; @@ -32538,9 +32525,7 @@ num_items = 1; } SET_ADDRESS(&null_addr, AT_NONE, 0, NULL); - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&transportLayerAddress_ipv4; + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); conversation = find_conversation(actx->pinfo->fd->num,&dst_addr, &null_addr, PT_UDP, BindingID_port, @@ -32575,7 +32560,7 @@ num_items = 1; nbap_debug2("Frame %u PCH-ParametersItem-CTCH-SetupRqstFDD Start: num_tf %u", actx->pinfo->fd->num, num_tf); - + for (j = 0; j < num_tf; j++) { umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_tf_size[j] = nbap_dch_chnl_info[commontransportchannelid].ul_chan_tf_size[j]; umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[commontransportchannelid].ul_chan_num_tbs[j]; @@ -32594,7 +32579,7 @@ num_items = 1; i = commontransportchannelid; nbap_debug2(" commontransportchannelid %u next ch %u",commontransportchannelid, nbap_dch_chnl_info[i].next_dch); - + umts_fp_conversation_info->dchs_in_flow_list[0] = commontransportchannelid; while(nbap_dch_chnl_info[i].next_dch != 0){ i = nbap_dch_chnl_info[i].next_dch; @@ -32617,7 +32602,7 @@ num_items = 1; umts_fp_conversation_info->num_dch_in_flow++; nbap_debug1(" num_dch_in_flow %u", umts_fp_conversation_info->num_dch_in_flow); - + umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i; set_umts_fp_conv_data(conversation, umts_fp_conversation_info); @@ -32683,9 +32668,7 @@ transportFormatSet_type = NBAP_CPCH; } SET_ADDRESS(&null_addr, AT_NONE, 0, NULL); - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&transportLayerAddress_ipv4; + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4); conversation = find_conversation(actx->pinfo->fd->num,&dst_addr, &null_addr, PT_UDP, BindingID_port, @@ -32710,7 +32693,7 @@ transportFormatSet_type = NBAP_CPCH; SE_COPY_ADDRESS(&(umts_fp_conversation_info->crnc_address), &dst_addr); umts_fp_conversation_info->crnc_port = BindingID_port; umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN; - + /*Save unique UE-identifier */ umts_fp_conversation_info->com_context_id = crcn_context_present ? com_context_id : 1; @@ -37333,7 +37316,7 @@ dissect_nbap_RadioLinkSetupRequestFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ct g_nbap_msg_info_for_fp.ddMode = ddMode; g_nbap_msg_info_for_fp.is_uplink = TRUE; g_nbap_msg_info_for_fp.dch_crc_present = 2; /* unknown */ - + col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupRequest(FDD) "); /* CRNC -> Node B */ @@ -37816,7 +37799,7 @@ dissect_nbap_RadioLinkSetupResponseFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_c g_nbap_msg_info_for_fp.ddMode = ddMode; g_nbap_msg_info_for_fp.is_uplink = FALSE; g_nbap_msg_info_for_fp.dch_crc_present = 2; /* unknown */ - + col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupResponse(FDD) "); /* Node B -> CRNC */ @@ -41074,12 +41057,12 @@ col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationCommit "); actx->pinfo->link_dir=P2P_DIR_DL; -#line 2145 "../../asn1/nbap/nbap.cnf" +#line 2128 "../../asn1/nbap/nbap.cnf" /* * Here we need to signal the CFN value, down to FP so * that lowert layers know when a reconfiguration becomes active * */ - + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_nbap_RadioLinkReconfigurationCommit, RadioLinkReconfigurationCommit_sequence); diff --git a/epan/dissectors/packet-tacacs.c b/epan/dissectors/packet-tacacs.c index bdc49c7850..fcf86d104d 100644 --- a/epan/dissectors/packet-tacacs.c +++ b/epan/dissectors/packet-tacacs.c @@ -841,9 +841,7 @@ mkipv4_address( address **addr, const char *str_addr ) *addr=g_malloc( sizeof(address) ); addr_data=g_malloc( 4 ); inet_pton( AF_INET, str_addr, addr_data ); - (*addr)->type=AT_IPv4; - (*addr)->len=4; - (*addr)->data=(guint8*)addr_data; + SET_ADDRESS(*addr, AT_IPv4, 4, addr_data); } static void parse_tuple( char *key_from_option ) diff --git a/epan/dissectors/packet-uma.c b/epan/dissectors/packet-uma.c index 0cf5eda73a..e48d29d36c 100644 --- a/epan/dissectors/packet-uma.c +++ b/epan/dissectors/packet-uma.c @@ -1475,9 +1475,7 @@ dissect_uma_IE(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset) } SET_ADDRESS(&null_addr, AT_NONE, 0, NULL); - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&GPRS_user_data_ipv4_address; + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &GPRS_user_data_ipv4_address); conversation = find_conversation(pinfo->fd->num,&dst_addr, &null_addr, PT_UDP, GPRS_user_data_transport_UDP_port, @@ -1509,9 +1507,7 @@ dissect_uma_IE(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset) } SET_ADDRESS(&null_addr, AT_NONE, 0, NULL); - dst_addr.type=AT_IPv4; - dst_addr.len=4; - dst_addr.data=(guint8 *)&unc_ipv4_address; + SET_ADDRESS(&dst_addr, AT_IPv4, 4, &unc_ipv4_address); conversation = find_conversation(pinfo->fd->num,&dst_addr, &null_addr, PT_TCP, UNC_tcp_port, @@ -1536,9 +1532,7 @@ dissect_uma_IE(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset) rtp_ipv4_address,RTP_UDP_port,rtp_handle); */ if(unc_ipv4_address!=0){ - src_addr.type=AT_IPv4; - src_addr.len=4; - src_addr.data=(guint8 *)&unc_ipv4_address; + SET_ADDRESS(&src_addr, AT_IPv4, 4, &unc_ipv4_address); }else{ /* Set Source IP = own IP */ src_addr = pinfo->src; @@ -1557,9 +1551,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_RTCP_port, tvb, ie_offset, 2, ENC_BIG_ENDIAN); /* TODO find out exactly which element contains IP addr */ if((!pinfo->fd->flags.visited) && rtcp_ipv4_address!=0 && RTCP_UDP_port!=0 && rtcp_handle){ - src_addr.type=AT_IPv4; - src_addr.len=4; - src_addr.data=(guint8 *)&rtcp_ipv4_address; + SET_ADDRESS(&src_addr, AT_IPv4, 4, &rtcp_ipv4_address); rtcp_add_address(pinfo, &src_addr, RTCP_UDP_port, 0, "UMA", pinfo->fd->num); } |