diff options
-rw-r--r-- | asn1/nbap/nbap.cnf | 201 | ||||
-rw-r--r-- | asn1/nbap/packet-nbap-template.c | 1 | ||||
-rw-r--r-- | epan/dissectors/packet-nbap.c | 68 | ||||
-rw-r--r-- | epan/dissectors/packet-umts_fp.c | 50 | ||||
-rw-r--r-- | epan/dissectors/packet-umts_fp.h | 8 |
5 files changed, 265 insertions, 63 deletions
diff --git a/asn1/nbap/nbap.cnf b/asn1/nbap/nbap.cnf index bd54e6974e..53c124d9de 100644 --- a/asn1/nbap/nbap.cnf +++ b/asn1/nbap/nbap.cnf @@ -113,83 +113,215 @@ ProtocolIE-ContainerPairList #.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue #------ Pretify info column ----- -#.FN_HDR CommonMeasurementReport -col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementReport "); -/* Node B -> CRNC */ -actx->pinfo->link_dir=P2P_DIR_UL; - +# CellSetupRequestFDD +# CellSetupResponse +# CellSetupFailure +# CellSetupRequestTDD +# CellSetupResponse +# CellSetupFailure +# CellReconfigurationRequestFDD +# CellReconfigurationResponse +# CellReconfigurationFailure +# CellReconfigurationRequestTDD +# CellReconfigurationResponse +# CellReconfigurationFailure +# CellDeletionRequest +# CellDeletionResponse +# CommonTransportChannelSetupRequestFDD +# CommonTransportChannelSetupResponse +# CommonTransportChannelSetupFailure +# CommonTransportChannelSetupRequestTDD +# CommonTransportChannelSetupResponse +# CommonTransportChannelSetupFailure +# CommonTransportChannelReconfigurationRequestFDD +# CommonTransportChannelReconfigurationResponse +# CommonTransportChannelReconfigurationFailure +# CommonTransportChannelReconfigurationRequestTDD +# CommonTransportChannelReconfigurationResponse +# CommonTransportChannelReconfigurationFailure +# CommonTransportChannelDeletionRequest +# CommonTransportChannelDeletionResponse +# AuditRequest +# AuditResponse +# AuditFailure +# BlockResourceRequest +# BlockResourceResponse +# BlockResourceFailure -#.FN_HDR DedicatedMeasurementInitiationRequest -col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationRequest "); +# RadioLinkSetupRequestFDD +#.FN_HDR RadioLinkSetupRequestFDD +col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupRequest(FDD) "); /* CRNC -> Node B */ actx->pinfo->link_dir=P2P_DIR_DL; -#.FN_HDR DedicatedMeasurementInitiationResponse -col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationResponse "); +# RadioLinkSetupResponseFDD +#.FN_HDR RadioLinkSetupResponseFDD +col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupResponse(FDD) "); /* Node B -> CRNC */ actx->pinfo->link_dir=P2P_DIR_UL; -#.FN_HDR DedicatedMeasurementInitiationFailure -col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationFailure "); +# RadioLinkSetupFailureFDD +#.FN_HDR RadioLinkSetupFailureFDD +col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupFailure(FDD) "); /* Node B -> CRNC */ actx->pinfo->link_dir=P2P_DIR_UL; -#.FN_HDR DedicatedMeasurementReport -col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementReport "); -/* Node B -> CRNC */ -actx->pinfo->link_dir=P2P_DIR_UL; +# RadioLinkSetupRequestTDD +# RadioLinkSetupResponseTDD +# RadioLinkSetupFailureTDD +# SystemInformationUpdateRequest +# SystemInformationUpdateResponse +# SystemInformationUpdateFailure +# ResetRequest +# ResetResponse +# CommonMeasurementInitiationRequest +# CommonMeasurementInitiationResponse +# CommonMeasurementInitiationFailure +# RadioLinkAdditionRequestFDD +# RadioLinkAdditionResponseFDD +# RadioLinkAdditionFailureFDD +# RadioLinkAdditionRequestTDD +# RadioLinkAdditionResponseTDD +# RadioLinkAdditionFailureTDD +# RadioLinkDeletionRequest #.FN_HDR RadioLinkDeletionRequest col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkDeletionRequest "); /* CRNC -> Node B */ actx->pinfo->link_dir=P2P_DIR_DL; -#.FN_HDR RadioLinkDeletionResponse -col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkDeletionResponse "); -/* Node B -> CRNC */ -actx->pinfo->link_dir=P2P_DIR_UL; - -#.FN_HDR RadioLinkParameterUpdateIndicationFDD -col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkParameterUpdateIndication(FDD) "); -/* Node B -> CRNC */ -actx->pinfo->link_dir=P2P_DIR_UL; - +# RadioLinkDeletionResponse +#.FN_HDR RadioLinkDeletionRequest +col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkDeletionRequest "); +/* CRNC -> Node B */ +actx->pinfo->link_dir=P2P_DIR_DL; +# RadioLinkReconfigurationPrepareFDD #.FN_HDR RadioLinkReconfigurationPrepareFDD col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationPrepare(FDD) "); /* CRNC -> Node B */ actx->pinfo->link_dir=P2P_DIR_DL; +# RadioLinkReconfigurationReady +# RadioLinkReconfigurationFailure +# RadioLinkReconfigurationPrepareTDD + +# RadioLinkReconfigurationReady #.FN_HDR RadioLinkReconfigurationReady col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationReady "); /* Node B -> CRNC */ actx->pinfo->link_dir=P2P_DIR_UL; +# RadioLinkReconfigurationFailure +# RadioLinkReconfigurationRequestFDD +# RadioLinkReconfigurationResponse +# RadioLinkReconfigurationFailure +# RadioLinkReconfigurationRequestTDD +# RadioLinkReconfigurationResponse +# RadioLinkReconfigurationFailure + #.FN_HDR RadioLinkReconfigurationFailure col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationFailure "); /* Node B -> CRNC */ actx->pinfo->link_dir=P2P_DIR_UL; -#.FN_HDR RadioLinkRestoreIndication -col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkRestoreIndication "); +# DedicatedMeasurementInitiationRequest +#.FN_HDR DedicatedMeasurementInitiationRequest +col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationRequest "); /* CRNC -> Node B */ actx->pinfo->link_dir=P2P_DIR_DL; -#.FN_HDR RadioLinkSetupRequestFDD -col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupRequest(FDD) "); +# DedicatedMeasurementInitiationResponse +#.FN_HDR DedicatedMeasurementInitiationResponse +col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationResponse "); +/* Node B -> CRNC */ +actx->pinfo->link_dir=P2P_DIR_UL; + +# DedicatedMeasurementInitiationFailure +#.FN_HDR DedicatedMeasurementInitiationFailure +col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationFailure "); +/* Node B -> CRNC */ +actx->pinfo->link_dir=P2P_DIR_UL; + +# PhysicalSharedChannelReconfigurationRequestFDD +# PhysicalSharedChannelReconfigurationResponse +# PhysicalSharedChannelReconfigurationFailure +# PhysicalSharedChannelReconfigurationRequestTDD +# PhysicalSharedChannelReconfigurationResponse +# PhysicalSharedChannelReconfigurationFailure +# InformationExchangeInitiationRequest +# InformationExchangeInitiationResponse +# InformationExchangeInitiationFailure +# CellSynchronisationInitiationRequestTDD +# CellSynchronisationInitiationResponseTDD +# CellSynchronisationInitiationFailureTDD +# CellSynchronisationReconfigurationRequestTDD +# CellSynchronisationReconfigurationResponseTDD +# CellSynchronisationReconfigurationFailureTDD +# CellSynchronisationAdjustmentRequestTDD +# CellSynchronisationAdjustmentResponseTDD +# CellSynchronisationAdjustmentFailureTDD +# ResourceStatusIndication +# AuditRequiredIndication + +# CommonMeasurementReport +#.FN_HDR CommonMeasurementReport +col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementReport "); +/* Node B -> CRNC */ +actx->pinfo->link_dir=P2P_DIR_UL; + +# CommonMeasurementTerminationRequest +# CommonMeasurementFailureIndication +# RadioLinkReconfigurationCommit +# RadioLinkReconfigurationCancel +# RadioLinkFailureIndication +# RadioLinkPreemptionRequiredIndication + +# RadioLinkRestoreIndication +#.FN_HDR RadioLinkRestoreIndication +col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkRestoreIndication "); /* CRNC -> Node B */ actx->pinfo->link_dir=P2P_DIR_DL; -#.FN_HDR RadioLinkSetupResponseFDD -col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupResponse(FDD) "); +# DedicatedMeasurementReport +#.FN_HDR DedicatedMeasurementReport +col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementReport "); /* Node B -> CRNC */ actx->pinfo->link_dir=P2P_DIR_UL; -#.FN_HDR RadioLinkSetupFailureFDD -col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupFailure(FDD) "); +# DedicatedMeasurementTerminationRequest +# DedicatedMeasurementFailureIndication +# DL-PowerControlRequest +# DL-PowerTimeslotControlRequest +# CompressedModeCommand +# UnblockResourceIndication +# ErrorIndication +# ErrorIndication +# CellSynchronisationReportTDD +# CellSynchronisationTerminationRequestTDD +# CellSynchronisationFailureIndicationTDD +# PrivateMessage +# PrivateMessage +# InformationReport +# InformationExchangeTerminationRequest +# InformationExchangeFailureIndication +# BearerRearrangementIndication +# RadioLinkActivationCommandFDD +# RadioLinkActivationCommandTDD + +# RadioLinkParameterUpdateIndicationFDD +#.FN_HDR RadioLinkParameterUpdateIndicationFDD +col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkParameterUpdateIndication(FDD) "); /* Node B -> CRNC */ actx->pinfo->link_dir=P2P_DIR_UL; +# RadioLinkParameterUpdateIndicationTDD +# MBMSNotificationUpdateCommand +# UEStatusUpdateCommand +# SecondaryULFrequencyReport +# SecondaryULFrequencyUpdateIndication + + #.FN_BODY TransportLayerAddress VAL_PTR = ¶meter_tvb tvbuff_t *parameter_tvb=NULL; proto_item *item; @@ -265,6 +397,9 @@ BindingID_port = 0; /* Set dissector */ conversation_set_dissector(conversation, fp_handle); } + if(actx->pinfo->link_dir==P2P_DIR_DL){ + set_umts_fp_dl_conv_data(conversation, actx->pinfo->fd->num); + } #.REGISTER_NEW diff --git a/asn1/nbap/packet-nbap-template.c b/asn1/nbap/packet-nbap-template.c index 4a44ab97c0..d25b37367b 100644 --- a/asn1/nbap/packet-nbap-template.c +++ b/asn1/nbap/packet-nbap-template.c @@ -38,6 +38,7 @@ #include "packet-per.h" #include "packet-isup.h" +#include "packet-umts_fp.h" #ifdef _MSC_VER /* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */ diff --git a/epan/dissectors/packet-nbap.c b/epan/dissectors/packet-nbap.c index 8045d90008..da144affa1 100644 --- a/epan/dissectors/packet-nbap.c +++ b/epan/dissectors/packet-nbap.c @@ -46,6 +46,7 @@ #include "packet-per.h" #include "packet-isup.h" +#include "packet-umts_fp.h" #ifdef _MSC_VER /* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */ @@ -1520,7 +1521,7 @@ typedef enum _ProtocolIE_ID_enum { } ProtocolIE_ID_enum; /*--- End of included file: packet-nbap-val.h ---*/ -#line 58 "../../asn1/nbap/packet-nbap-template.c" +#line 59 "../../asn1/nbap/packet-nbap-template.c" /* Initialize the protocol and registered fields */ static int proto_nbap = -1; @@ -4816,7 +4817,7 @@ static int hf_nbap_RACH_SubChannelNumbers_subCh1 = -1; static int hf_nbap_RACH_SubChannelNumbers_subCh0 = -1; /*--- End of included file: packet-nbap-hf.c ---*/ -#line 66 "../../asn1/nbap/packet-nbap-template.c" +#line 67 "../../asn1/nbap/packet-nbap-template.c" /* Initialize the subtree pointers */ static int ett_nbap = -1; @@ -6454,7 +6455,7 @@ static gint ett_nbap_UnsuccessfulOutcome = -1; static gint ett_nbap_Outcome = -1; /*--- End of included file: packet-nbap-ett.c ---*/ -#line 73 "../../asn1/nbap/packet-nbap-template.c" +#line 74 "../../asn1/nbap/packet-nbap-template.c" /* Global variables */ static guint32 ProcedureCode; @@ -8463,7 +8464,7 @@ dissect_nbap_E_DCH_MACdFlow_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int dissect_nbap_BindingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 227 "../../asn1/nbap/nbap.cnf" +#line 359 "../../asn1/nbap/nbap.cnf" tvbuff_t *parameter_tvb=NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 1, 4, TRUE, ¶meter_tvb); @@ -8481,7 +8482,7 @@ dissect_nbap_BindingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int dissect_nbap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 194 "../../asn1/nbap/nbap.cnf" +#line 326 "../../asn1/nbap/nbap.cnf" tvbuff_t *parameter_tvb=NULL; proto_item *item; proto_tree *subtree, *nsap_tree; @@ -27273,7 +27274,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 237 "../../asn1/nbap/nbap.cnf" +#line 369 "../../asn1/nbap/nbap.cnf" address dst_addr, null_addr; conversation_t *conversation; @@ -27307,6 +27308,9 @@ BindingID_port = 0; /* Set dissector */ conversation_set_dissector(conversation, fp_handle); } + if(actx->pinfo->link_dir==P2P_DIR_DL){ + set_umts_fp_dl_conv_data(conversation, actx->pinfo->fd->num); + } @@ -33207,7 +33211,7 @@ static const per_sequence_t CommonMeasurementReport_sequence[] = { static int dissect_nbap_CommonMeasurementReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 117 "../../asn1/nbap/nbap.cnf" +#line 269 "../../asn1/nbap/nbap.cnf" col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementReport "); /* Node B -> CRNC */ actx->pinfo->link_dir=P2P_DIR_UL; @@ -35338,7 +35342,7 @@ static const per_sequence_t RadioLinkSetupRequestFDD_sequence[] = { static int dissect_nbap_RadioLinkSetupRequestFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 179 "../../asn1/nbap/nbap.cnf" +#line 153 "../../asn1/nbap/nbap.cnf" col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupRequest(FDD) "); /* CRNC -> Node B */ actx->pinfo->link_dir=P2P_DIR_DL; @@ -35814,7 +35818,7 @@ static const per_sequence_t RadioLinkSetupResponseFDD_sequence[] = { static int dissect_nbap_RadioLinkSetupResponseFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 184 "../../asn1/nbap/nbap.cnf" +#line 159 "../../asn1/nbap/nbap.cnf" col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupResponse(FDD) "); /* Node B -> CRNC */ actx->pinfo->link_dir=P2P_DIR_UL; @@ -36033,12 +36037,13 @@ static const per_sequence_t RadioLinkSetupFailureFDD_sequence[] = { static int dissect_nbap_RadioLinkSetupFailureFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 189 "../../asn1/nbap/nbap.cnf" +#line 165 "../../asn1/nbap/nbap.cnf" col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupFailure(FDD) "); /* Node B -> CRNC */ actx->pinfo->link_dir=P2P_DIR_UL; + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_nbap_RadioLinkSetupFailureFDD, RadioLinkSetupFailureFDD_sequence); @@ -37228,12 +37233,13 @@ static const per_sequence_t RadioLinkReconfigurationPrepareFDD_sequence[] = { static int dissect_nbap_RadioLinkReconfigurationPrepareFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 159 "../../asn1/nbap/nbap.cnf" +#line 201 "../../asn1/nbap/nbap.cnf" col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationPrepare(FDD) "); /* CRNC -> Node B */ actx->pinfo->link_dir=P2P_DIR_DL; + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_nbap_RadioLinkReconfigurationPrepareFDD, RadioLinkReconfigurationPrepareFDD_sequence); @@ -38846,12 +38852,13 @@ static const per_sequence_t RadioLinkReconfigurationReady_sequence[] = { static int dissect_nbap_RadioLinkReconfigurationReady(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 164 "../../asn1/nbap/nbap.cnf" +#line 211 "../../asn1/nbap/nbap.cnf" col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationReady "); /* Node B -> CRNC */ actx->pinfo->link_dir=P2P_DIR_UL; + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_nbap_RadioLinkReconfigurationReady, RadioLinkReconfigurationReady_sequence); @@ -38927,7 +38934,7 @@ static const per_sequence_t RadioLinkReconfigurationFailure_sequence[] = { static int dissect_nbap_RadioLinkReconfigurationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 169 "../../asn1/nbap/nbap.cnf" +#line 224 "../../asn1/nbap/nbap.cnf" col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationFailure "); /* Node B -> CRNC */ actx->pinfo->link_dir=P2P_DIR_UL; @@ -39565,7 +39572,11 @@ static const per_sequence_t RadioLinkDeletionRequest_sequence[] = { static int dissect_nbap_RadioLinkDeletionRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 143 "../../asn1/nbap/nbap.cnf" +#line 189 "../../asn1/nbap/nbap.cnf" +col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkDeletionRequest "); +/* CRNC -> Node B */ +actx->pinfo->link_dir=P2P_DIR_DL; + col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkDeletionRequest "); /* CRNC -> Node B */ actx->pinfo->link_dir=P2P_DIR_DL; @@ -39615,12 +39626,6 @@ static const per_sequence_t RadioLinkDeletionResponse_sequence[] = { static int dissect_nbap_RadioLinkDeletionResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 148 "../../asn1/nbap/nbap.cnf" -col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkDeletionResponse "); -/* Node B -> CRNC */ -actx->pinfo->link_dir=P2P_DIR_UL; - - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_nbap_RadioLinkDeletionResponse, RadioLinkDeletionResponse_sequence); @@ -39696,7 +39701,7 @@ static const per_sequence_t DedicatedMeasurementInitiationRequest_sequence[] = { static int dissect_nbap_DedicatedMeasurementInitiationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 123 "../../asn1/nbap/nbap.cnf" +#line 230 "../../asn1/nbap/nbap.cnf" col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationRequest "); /* CRNC -> Node B */ actx->pinfo->link_dir=P2P_DIR_DL; @@ -39892,7 +39897,7 @@ static const per_sequence_t DedicatedMeasurementInitiationResponse_sequence[] = static int dissect_nbap_DedicatedMeasurementInitiationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 128 "../../asn1/nbap/nbap.cnf" +#line 236 "../../asn1/nbap/nbap.cnf" col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationResponse "); /* Node B -> CRNC */ actx->pinfo->link_dir=P2P_DIR_UL; @@ -40196,12 +40201,13 @@ static const per_sequence_t DedicatedMeasurementInitiationFailure_sequence[] = { static int dissect_nbap_DedicatedMeasurementInitiationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 133 "../../asn1/nbap/nbap.cnf" +#line 242 "../../asn1/nbap/nbap.cnf" col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationFailure "); /* Node B -> CRNC */ actx->pinfo->link_dir=P2P_DIR_UL; + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_nbap_DedicatedMeasurementInitiationFailure, DedicatedMeasurementInitiationFailure_sequence); @@ -40217,12 +40223,13 @@ static const per_sequence_t DedicatedMeasurementReport_sequence[] = { static int dissect_nbap_DedicatedMeasurementReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 138 "../../asn1/nbap/nbap.cnf" +#line 288 "../../asn1/nbap/nbap.cnf" col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementReport "); /* Node B -> CRNC */ actx->pinfo->link_dir=P2P_DIR_UL; + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_nbap_DedicatedMeasurementReport, DedicatedMeasurementReport_sequence); @@ -40648,7 +40655,7 @@ static const per_sequence_t RadioLinkRestoreIndication_sequence[] = { static int dissect_nbap_RadioLinkRestoreIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 174 "../../asn1/nbap/nbap.cnf" +#line 282 "../../asn1/nbap/nbap.cnf" col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkRestoreIndication "); /* CRNC -> Node B */ actx->pinfo->link_dir=P2P_DIR_DL; @@ -45119,13 +45126,14 @@ static const per_sequence_t RadioLinkParameterUpdateIndicationFDD_sequence[] = { static int dissect_nbap_RadioLinkParameterUpdateIndicationFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 153 "../../asn1/nbap/nbap.cnf" +#line 314 "../../asn1/nbap/nbap.cnf" col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkParameterUpdateIndication(FDD) "); /* Node B -> CRNC */ actx->pinfo->link_dir=P2P_DIR_UL; + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_nbap_RadioLinkParameterUpdateIndicationFDD, RadioLinkParameterUpdateIndicationFDD_sequence); @@ -53010,7 +53018,7 @@ static int dissect_NULL_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tre /*--- End of included file: packet-nbap-fn.c ---*/ -#line 94 "../../asn1/nbap/packet-nbap-template.c" +#line 95 "../../asn1/nbap/packet-nbap-template.c" static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { @@ -66207,7 +66215,7 @@ void proto_register_nbap(void) { NULL, HFILL }}, /*--- End of included file: packet-nbap-hfarr.c ---*/ -#line 158 "../../asn1/nbap/packet-nbap-template.c" +#line 159 "../../asn1/nbap/packet-nbap-template.c" }; /* List of subtrees */ @@ -67846,7 +67854,7 @@ void proto_register_nbap(void) { &ett_nbap_Outcome, /*--- End of included file: packet-nbap-ettarr.c ---*/ -#line 166 "../../asn1/nbap/packet-nbap-template.c" +#line 167 "../../asn1/nbap/packet-nbap-template.c" }; @@ -68977,7 +68985,7 @@ proto_reg_handoff_nbap(void) /*--- End of included file: packet-nbap-dis-tab.c ---*/ -#line 200 "../../asn1/nbap/packet-nbap-template.c" +#line 201 "../../asn1/nbap/packet-nbap-template.c" } diff --git a/epan/dissectors/packet-umts_fp.c b/epan/dissectors/packet-umts_fp.c index 882bcba06d..33fba4d49f 100644 --- a/epan/dissectors/packet-umts_fp.c +++ b/epan/dissectors/packet-umts_fp.c @@ -30,6 +30,7 @@ #include <epan/packet.h> #include <epan/expert.h> #include <epan/prefs.h> +#include <epan/conversation.h> #include "packet-umts_fp.h" @@ -181,6 +182,7 @@ static int hf_fp_e_rucch_present = -1; static int hf_fp_extended_bits_present = -1; static int hf_fp_extended_bits = -1; static int hf_fp_spare_extension = -1; +static int hf_fp_dl_setup_frame = -1; /* Subtrees. */ static int ett_fp = -1; @@ -526,7 +528,33 @@ static void dissect_fp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree); void proto_register_fp(void); void proto_reg_handoff_fp(void); +void +set_umts_fp_dl_conv_data(conversation_t *conversation, guint32 dl_frame_number) +{ + struct _umts_fp_conversation_info *p_conv_data = NULL; + + if(conversation==NULL) + return; + + p_conv_data = conversation_get_proto_data(conversation, proto_fp); + + /* + * If not, add a new data item. + */ + if ( ! p_conv_data ) { + /* Create conversation data */ + p_conv_data = se_alloc(sizeof(struct _umts_fp_conversation_info)); + p_conv_data->dl_frame_number = dl_frame_number; + p_conv_data->ul_frame_number = 0; + conversation_add_proto_data(conversation, proto_fp, p_conv_data); + } + + /* + * Update the conversation data. + */ + +} static int get_tb_count(struct fp_info *p_fp_info) { int chan, tb_count = 0; @@ -3220,6 +3248,8 @@ void dissect_fp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_item *ti; gint offset = 0; struct fp_info *p_fp_info; + conversation_t *p_conv = NULL; + struct _umts_fp_conversation_info *p_conv_data = NULL; /* Append this protocol name rather than replace. */ col_set_str(pinfo->cinfo, COL_PROTOCOL, "FP"); @@ -3230,6 +3260,20 @@ void dissect_fp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) top_level_tree = tree; + /* Check if we have converstaion info */ + p_conv = find_conversation(pinfo->fd->num, &pinfo->net_dst, &pinfo->net_src, + pinfo->ptype, + pinfo->destport, pinfo->srcport, NO_ADDR_B); + if (p_conv) { + p_conv_data = conversation_get_proto_data(p_conv, proto_fp); + if (p_conv_data) { + proto_item* item = proto_tree_add_uint(fp_tree, hf_fp_dl_setup_frame, + tvb, 0, 0, p_conv_data->dl_frame_number); + PROTO_ITEM_SET_GENERATED(item); + } + + } + /* Look for packet info! */ p_fp_info = p_get_proto_data(pinfo->fd, proto_fp); @@ -4332,6 +4376,12 @@ void proto_register_fp(void) NULL, HFILL } }, + { &hf_fp_dl_setup_frame, + { "DL setup frame", + "fp.dl.setup_frame", FT_FRAMENUM, BASE_NONE, NULL, 0x0, + NULL, HFILL + } + }, }; diff --git a/epan/dissectors/packet-umts_fp.h b/epan/dissectors/packet-umts_fp.h index 030318db5a..076f19443f 100644 --- a/epan/dissectors/packet-umts_fp.h +++ b/epan/dissectors/packet-umts_fp.h @@ -105,3 +105,11 @@ typedef struct fp_info enum fp_link_type link_type; } fp_info; +struct _umts_fp_conversation_info +{ + guint32 dl_frame_number; /* the frame where this conversation is started from CRNC */ + guint32 ul_frame_number; /* the frame where this conversation is started from Node B */ + +}; + +void set_umts_fp_dl_conv_data(conversation_t *conversation, guint32 dl_frame_number);
\ No newline at end of file |