Use converstaion info in umts_fp.

svn path=/trunk/; revision=42466
This commit is contained in:
Anders Broman 2012-05-07 16:09:49 +00:00
parent 7afe87264d
commit 1e6a26dfe9
5 changed files with 266 additions and 64 deletions

View File

@ -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;
# DedicatedMeasurementInitiationRequest
#.FN_HDR DedicatedMeasurementInitiationRequest
col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
# 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 RadioLinkSetupRequestFDD
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupRequest(FDD) ");
/* 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 = &parameter_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

View File

@ -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" */

View File

@ -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, &parameter_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"
}

View File

@ -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);
@ -4331,6 +4375,12 @@ void proto_register_fp(void)
"fp.spare-extension", FT_NONE, BASE_NONE, NULL, 0x0,
NULL, HFILL
}
},
{ &hf_fp_dl_setup_frame,
{ "DL setup frame",
"fp.dl.setup_frame", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
NULL, HFILL
}
},
};

View File

@ -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);