NBAP: Create E-DCH channel info

Adding missing creation and insertion of the E-DCH channel
info the the FP conversation info struct

Change-Id: Ic7dfb5b9579133ff84b2fc4fff73a3560055dcca
Reviewed-on: https://code.wireshark.org/review/21742
Reviewed-by: S. Shapira <sswsdev@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
This commit is contained in:
DarienSpencer65 2017-05-24 15:12:05 +03:00 committed by Pascal Quantin
parent 12d4ca9621
commit 249ce2f183
2 changed files with 44 additions and 32 deletions

View File

@ -1282,6 +1282,7 @@ dch_id = 0xFFFFFFFF;
address dst_addr, null_addr;
conversation_t *conversation;
umts_fp_conversation_info_t *umts_fp_conversation_info = NULL;
fp_edch_channel_info_t* fp_edch_channel_info;
nbap_edch_port_info_t *old_info = NULL;
transportLayerAddress_ipv4 = 0;
@ -1333,6 +1334,8 @@ BindingID_port = 0;
umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN;
fp_edch_channel_info = wmem_new0(wmem_file_scope(), fp_edch_channel_info_t);
umts_fp_conversation_info->channel_specific_info = (void*)fp_edch_channel_info;
if(crcn_context_present){
umts_fp_conversation_info->com_context_id = com_context_id;
@ -1454,6 +1457,7 @@ guint32 no_ddi_entries, i;
address dst_addr, null_addr;
conversation_t *conversation,*old_conversation = NULL;
umts_fp_conversation_info_t *umts_fp_conversation_info _U_;
fp_edch_channel_info_t* fp_edch_channel_info;
void *conv_proto_data = NULL;
transportLayerAddress_ipv4 = 0;
@ -1516,6 +1520,8 @@ BindingID_port = 0;
umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN;
fp_edch_channel_info = wmem_new0(wmem_file_scope(), fp_edch_channel_info_t);
umts_fp_conversation_info->channel_specific_info = (void*)fp_edch_channel_info;
if(crcn_context_present){
umts_fp_conversation_info->com_context_id = com_context_id;

View File

@ -10074,7 +10074,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 2213 "./asn1/Nbap/nbap.cnf"
#line 2219 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &cfn, FALSE);
@ -10327,7 +10327,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 2175 "./asn1/Nbap/nbap.cnf"
#line 2181 "./asn1/Nbap/nbap.cnf"
umts_fp_conversation_info_t *umts_fp_conversation_info = NULL;
fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
address null_addr;
@ -11552,7 +11552,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 2032 "./asn1/Nbap/nbap.cnf"
#line 2038 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxNrOfCommonMACFlows_1, &common_macdflow_id, FALSE);
@ -11686,7 +11686,7 @@ 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 1680 "./asn1/Nbap/nbap.cnf"
#line 1686 "./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);
@ -11704,7 +11704,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 1782 "./asn1/Nbap/nbap.cnf"
#line 1788 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 1504U, NULL, TRUE);
@ -12127,7 +12127,7 @@ 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 2039 "./asn1/Nbap/nbap.cnf"
#line 2045 "./asn1/Nbap/nbap.cnf"
address dst_addr;
transportLayerAddress_ipv4 = 0;
BindingID_port = 0;
@ -12172,7 +12172,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 1670 "./asn1/Nbap/nbap.cnf"
#line 1676 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 5000U, &MACdPDU_Size, TRUE);
@ -13393,7 +13393,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 2149 "./asn1/Nbap/nbap.cnf"
#line 2155 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 1048575U, &com_context_id, FALSE);
@ -18077,7 +18077,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 1659 "./asn1/Nbap/nbap.cnf"
#line 1665 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 62U, &e_dch_ddi_value, FALSE);
@ -18212,7 +18212,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 1656 "./asn1/Nbap/nbap.cnf"
#line 1662 "./asn1/Nbap/nbap.cnf"
num_items++;
@ -18229,7 +18229,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 1649 "./asn1/Nbap/nbap.cnf"
#line 1655 "./asn1/Nbap/nbap.cnf"
num_items = 0;
offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
@ -18262,7 +18262,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 1394 "./asn1/Nbap/nbap.cnf"
#line 1397 "./asn1/Nbap/nbap.cnf"
umts_fp_conversation_info_t *p_conv_data = NULL;
fp_edch_channel_info_t* fp_edch_channel_info = NULL;
address null_addr;
@ -18451,7 +18451,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 1644 "./asn1/Nbap/nbap.cnf"
#line 1650 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_E_DCH_LogicalChannelToModifyItem, E_DCH_LogicalChannelToModifyItem_sequence);
@ -18526,7 +18526,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 1546 "./asn1/Nbap/nbap.cnf"
#line 1552 "./asn1/Nbap/nbap.cnf"
guint32 no_ddi_entries, i;
address null_addr;
nbap_edch_port_info_t *old_info;
@ -18674,11 +18674,12 @@ 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 1453 "./asn1/Nbap/nbap.cnf"
#line 1456 "./asn1/Nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation,*old_conversation = NULL;
umts_fp_conversation_info_t *umts_fp_conversation_info _U_;
fp_edch_channel_info_t* fp_edch_channel_info;
void *conv_proto_data = NULL;
transportLayerAddress_ipv4 = 0;
@ -18743,6 +18744,8 @@ BindingID_port = 0;
umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN;
fp_edch_channel_info = wmem_new0(wmem_file_scope(), fp_edch_channel_info_t);
umts_fp_conversation_info->channel_specific_info = (void*)fp_edch_channel_info;
if(crcn_context_present){
umts_fp_conversation_info->com_context_id = com_context_id;
@ -23371,7 +23374,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 2059 "./asn1/Nbap/nbap.cnf"
#line 2065 "./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
@ -23534,7 +23537,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 1760 "./asn1/Nbap/nbap.cnf"
#line 1766 "./asn1/Nbap/nbap.cnf"
address dst_addr;
@ -23637,7 +23640,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 1687 "./asn1/Nbap/nbap.cnf"
#line 1693 "./asn1/Nbap/nbap.cnf"
guint32 rlc_mode;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
@ -23678,7 +23681,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 1751 "./asn1/Nbap/nbap.cnf"
#line 1757 "./asn1/Nbap/nbap.cnf"
num_items++;
@ -23712,7 +23715,7 @@ 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 1711 "./asn1/Nbap/nbap.cnf"
#line 1717 "./asn1/Nbap/nbap.cnf"
int protocol_ie_id;
guint32 i;
@ -23756,7 +23759,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 1704 "./asn1/Nbap/nbap.cnf"
#line 1710 "./asn1/Nbap/nbap.cnf"
guint32 hsdsch_physical_layer_category;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@ -23824,7 +23827,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 1812 "./asn1/Nbap/nbap.cnf"
#line 1818 "./asn1/Nbap/nbap.cnf"
/*
* Collect the information about the HSDSCH MACdFlows set up conversation(s) and set the conversation data.
*/
@ -23964,7 +23967,7 @@ 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 1904 "./asn1/Nbap/nbap.cnf"
#line 1910 "./asn1/Nbap/nbap.cnf"
address dst_addr;
transportLayerAddress_ipv4 = 0;
BindingID_port = 0;
@ -24022,7 +24025,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 1754 "./asn1/Nbap/nbap.cnf"
#line 1760 "./asn1/Nbap/nbap.cnf"
num_items = 1;
@ -24157,7 +24160,7 @@ 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 1924 "./asn1/Nbap/nbap.cnf"
#line 1930 "./asn1/Nbap/nbap.cnf"
/*
* This is pretty much the same like if we setup a previous flow
*/
@ -24282,7 +24285,7 @@ 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 1789 "./asn1/Nbap/nbap.cnf"
#line 1795 "./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.
@ -24393,7 +24396,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 1757 "./asn1/Nbap/nbap.cnf"
#line 1763 "./asn1/Nbap/nbap.cnf"
num_items++;
@ -24809,7 +24812,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 2139 "./asn1/Nbap/nbap.cnf"
#line 2145 "./asn1/Nbap/nbap.cnf"
/*
g_warning("HS-DSCH Type 3 NOT Implemented!");
*/
@ -25003,7 +25006,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 1748 "./asn1/Nbap/nbap.cnf"
#line 1754 "./asn1/Nbap/nbap.cnf"
num_items++;
@ -25020,7 +25023,7 @@ static const per_sequence_t HSDSCH_MACdFlows_to_Delete_sequence_of[1] = {
static int
dissect_nbap_HSDSCH_MACdFlows_to_Delete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
#line 1743 "./asn1/Nbap/nbap.cnf"
#line 1749 "./asn1/Nbap/nbap.cnf"
num_items = 0;
@ -28122,7 +28125,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 2153 "./asn1/Nbap/nbap.cnf"
#line 2159 "./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;
@ -28858,6 +28861,7 @@ dissect_nbap_RL_Specific_E_DCH_Information_Item(tvbuff_t *tvb _U_, int offset _U
address dst_addr, null_addr;
conversation_t *conversation;
umts_fp_conversation_info_t *umts_fp_conversation_info = NULL;
fp_edch_channel_info_t* fp_edch_channel_info;
nbap_edch_port_info_t *old_info = NULL;
transportLayerAddress_ipv4 = 0;
@ -28911,6 +28915,8 @@ BindingID_port = 0;
umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN;
fp_edch_channel_info = wmem_new0(wmem_file_scope(), fp_edch_channel_info_t);
umts_fp_conversation_info->channel_specific_info = (void*)fp_edch_channel_info;
if(crcn_context_present){
umts_fp_conversation_info->com_context_id = com_context_id;
@ -41156,7 +41162,7 @@ col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationCommit ");
actx->pinfo->link_dir=P2P_DIR_DL;
#line 2205 "./asn1/Nbap/nbap.cnf"
#line 2211 "./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