LTE RRC: dissect 2 InterNode IEs
authorPascal Quantin <pascal.quantin@gmail.com>
Sat, 19 Jan 2019 11:28:15 +0000 (12:28 +0100)
committerPascal Quantin <pascal.quantin@gmail.com>
Sat, 19 Jan 2019 12:51:36 +0000 (12:51 +0000)
Change-Id: I17424675a7b60f468e94134f17533cd891d135f7
Reviewed-on: https://code.wireshark.org/review/31606
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
epan/dissectors/asn1/lte-rrc/lte-rrc.cnf
epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c
epan/dissectors/asn1/nr-rrc/nr-rrc.cnf
epan/dissectors/packet-lte-rrc.c
epan/dissectors/packet-nr-rrc.c
epan/dissectors/packet-nr-rrc.h

index 2a1cff8df23bd4ea167e5cf63262be8199528fe4..eb9dc68358486181d3850e23b80285065a632e93 100644 (file)
@@ -2603,6 +2603,17 @@ P0-SL-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
 # EUTRA-InterNodeDefinitions
 #
 
+#.FN_BODY HandoverPreparationInformation-v1540-IEs/sourceRB-ConfigIntra5GC-r15 VAL_PTR = &radio_bearer_config_tvb
+  tvbuff_t *radio_bearer_config_tvb = NULL;
+
+%(DEFAULT_BODY)s
+
+  if (radio_bearer_config_tvb) {
+    proto_tree *subtree;
+    subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_sourceRB_ConfigIntra5GC_r15);
+    dissect_nr_rrc_RadioBearerConfig_PDU(radio_bearer_config_tvb, actx->pinfo, subtree, NULL);
+  }
+
 #.FN_BODY AS-ConfigNR-r15/sourceRB-ConfigNR-r15 VAL_PTR = &radio_bearer_config_tvb
   tvbuff_t *radio_bearer_config_tvb = NULL;
 
@@ -2647,6 +2658,17 @@ P0-SL-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
     dissect_nr_rrc_ConfigRestrictInfoSCG_PDU(scg_config_info_tvb, actx->pinfo, subtree, NULL);
   }
 
+#.FN_BODY AS-Context-v1130/eag_3/selectedbandCombinationInfoEN-DC-v1540 VAL_PTR = &band_comb_info_sn_tvb
+  tvbuff_t *band_comb_info_sn_tvb = NULL;
+
+%(DEFAULT_BODY)s
+
+  if (band_comb_info_sn_tvb) {
+    proto_tree *subtree;
+    subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_selectedbandCombinationInfoEN_DC_v1540);
+    dissect_nr_rrc_BandCombinationInfoSN_PDU(band_comb_info_sn_tvb, actx->pinfo, subtree, NULL);
+  }
+
 #
 # EUTRA-Sidelink-Preconf
 #
index 2bb19b0402795d7c5f7aca686912acb9ce081dcc..163ce0819dce7e85903fe8ca2aca2014fd454ae0 100644 (file)
@@ -307,6 +307,8 @@ static gint ett_lte_rrc_sourceContextEN_DC_r15 = -1;
 static gint ett_lte_rrc_requestedFreqBandsNR_MRDC_r15 = -1;
 static gint ett_lte_rrc_measGapPatterns_v1520 = -1;
 static gint ett_lte_rrc_nas_Container_r15 = -1;
+static gint ett_lte_rrc_sourceRB_ConfigIntra5GC_r15 = -1;
+static gint ett_lte_rrc_selectedbandCombinationInfoEN_DC_v1540 = -1;
 
 static expert_field ei_lte_rrc_number_pages_le15 = EI_INIT;
 static expert_field ei_lte_rrc_si_info_value_changed = EI_INIT;
@@ -4303,7 +4305,9 @@ void proto_register_lte_rrc(void) {
     &ett_lte_rrc_sourceContextEN_DC_r15,
     &ett_lte_rrc_requestedFreqBandsNR_MRDC_r15,
     &ett_lte_rrc_measGapPatterns_v1520,
-    &ett_lte_rrc_nas_Container_r15
+    &ett_lte_rrc_nas_Container_r15,
+    &ett_lte_rrc_sourceRB_ConfigIntra5GC_r15,
+    &ett_lte_rrc_selectedbandCombinationInfoEN_DC_v1540
   };
 
   static ei_register_info ei[] = {
index e847b9ac62f586b4fd435e425247ecbf96d14633..e4fc230cb720e575afbc12a32e1717075ca1d5fc 100644 (file)
@@ -39,6 +39,7 @@ T-StatusProhibit
 UL-DataSplitThreshold
 
 #.EXPORTS
+BandCombinationInfoSN_PDU
 CellGroupConfig_PDU
 CG-Config_PDU
 CG-ConfigInfo_PDU
@@ -71,6 +72,7 @@ UL-DCCH-Message_PDU
 UplinkTxDirectCurrentList_PDU
 
 #.PDU
+BandCombinationInfoSN
 BCCH-BCH-Message                   @bcch.bch
 BCCH-DL-SCH-Message                @bcch.dl.sch
 CellGroupConfig
index 0e27c2e5251a3de4363db62bb261be9b8603ab98..3398194320ea7b228b5415e3d6406386a567fbcd 100644 (file)
@@ -416,7 +416,7 @@ static int hf_lte_rrc_makeBeforeBreakReq_r14 = -1;  /* T_makeBeforeBreakReq_r14
 static int hf_lte_rrc_nonCriticalExtension_12 = -1;  /* HandoverPreparationInformation_v1530_IEs */
 static int hf_lte_rrc_ran_NotificationAreaInfo_r15 = -1;  /* RAN_NotificationAreaInfo_r15 */
 static int hf_lte_rrc_nonCriticalExtension_13 = -1;  /* HandoverPreparationInformation_v1540_IEs */
-static int hf_lte_rrc_sourceRB_ConfigIntra5GC_r15 = -1;  /* OCTET_STRING */
+static int hf_lte_rrc_sourceRB_ConfigIntra5GC_r15 = -1;  /* T_sourceRB_ConfigIntra5GC_r15 */
 static int hf_lte_rrc_nonCriticalExtension_14 = -1;  /* T_nonCriticalExtension_02 */
 static int hf_lte_rrc_criticalExtensions_02 = -1;  /* T_criticalExtensions_02 */
 static int hf_lte_rrc_c1_02 = -1;                 /* T_c1_02 */
@@ -547,7 +547,7 @@ static int hf_lte_rrc_mbmsInterestIndication_r11 = -1;  /* T_mbmsInterestIndicat
 static int hf_lte_rrc_powerPrefIndication_r11 = -1;  /* T_powerPrefIndication_r11 */
 static int hf_lte_rrc_sidelinkUEInformation_r12 = -1;  /* T_sidelinkUEInformation_r12 */
 static int hf_lte_rrc_sourceContextEN_DC_r15 = -1;  /* T_sourceContextEN_DC_r15 */
-static int hf_lte_rrc_selectedbandCombinationInfoEN_DC_v1540 = -1;  /* OCTET_STRING */
+static int hf_lte_rrc_selectedbandCombinationInfoEN_DC_v1540 = -1;  /* T_selectedbandCombinationInfoEN_DC_v1540 */
 static int hf_lte_rrc_wlanConnectionStatusReport_r13 = -1;  /* T_wlanConnectionStatusReport_r13 */
 static int hf_lte_rrc_sourcePhysCellId = -1;      /* PhysCellId */
 static int hf_lte_rrc_targetCellShortMAC_I = -1;  /* ShortMAC_I */
@@ -11016,6 +11016,8 @@ static gint ett_lte_rrc_sourceContextEN_DC_r15 = -1;
 static gint ett_lte_rrc_requestedFreqBandsNR_MRDC_r15 = -1;
 static gint ett_lte_rrc_measGapPatterns_v1520 = -1;
 static gint ett_lte_rrc_nas_Container_r15 = -1;
+static gint ett_lte_rrc_sourceRB_ConfigIntra5GC_r15 = -1;
+static gint ett_lte_rrc_selectedbandCombinationInfoEN_DC_v1540 = -1;
 
 static expert_field ei_lte_rrc_number_pages_le15 = EI_INIT;
 static expert_field ei_lte_rrc_si_info_value_changed = EI_INIT;
@@ -49391,7 +49393,6 @@ dissect_lte_rrc_T_sourceContextEN_DC_r15(tvbuff_t *tvb _U_, int offset _U_, asn1
   }
 
 
-
   return offset;
 }
 
@@ -49409,8 +49410,29 @@ dissect_lte_rrc_AS_Context_v1130_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_c
 }
 
 
+
+static int
+dissect_lte_rrc_T_selectedbandCombinationInfoEN_DC_v1540(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  tvbuff_t *band_comb_info_sn_tvb = NULL;
+
+  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+                                       NO_BOUND, NO_BOUND, FALSE, &band_comb_info_sn_tvb);
+
+
+  if (band_comb_info_sn_tvb) {
+    proto_tree *subtree;
+    subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_selectedbandCombinationInfoEN_DC_v1540);
+    dissect_nr_rrc_BandCombinationInfoSN_PDU(band_comb_info_sn_tvb, actx->pinfo, subtree, NULL);
+  }
+
+
+
+  return offset;
+}
+
+
 static const per_sequence_t AS_Context_v1130_eag_3_sequence[] = {
-  { &hf_lte_rrc_selectedbandCombinationInfoEN_DC_v1540, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lte_rrc_OCTET_STRING },
+  { &hf_lte_rrc_selectedbandCombinationInfoEN_DC_v1540, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lte_rrc_T_selectedbandCombinationInfoEN_DC_v1540 },
   { NULL, 0, 0, NULL }
 };
 
@@ -53913,6 +53935,26 @@ dissect_lte_rrc_RAN_NotificationAreaInfo_r15(tvbuff_t *tvb _U_, int offset _U_,
 }
 
 
+
+static int
+dissect_lte_rrc_T_sourceRB_ConfigIntra5GC_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  tvbuff_t *radio_bearer_config_tvb = NULL;
+
+  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+                                       NO_BOUND, NO_BOUND, FALSE, &radio_bearer_config_tvb);
+
+
+  if (radio_bearer_config_tvb) {
+    proto_tree *subtree;
+    subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_sourceRB_ConfigIntra5GC_r15);
+    dissect_nr_rrc_RadioBearerConfig_PDU(radio_bearer_config_tvb, actx->pinfo, subtree, NULL);
+  }
+
+
+  return offset;
+}
+
+
 static const per_sequence_t T_nonCriticalExtension_02_sequence[] = {
   { NULL, 0, 0, NULL }
 };
@@ -53927,7 +53969,7 @@ dissect_lte_rrc_T_nonCriticalExtension_02(tvbuff_t *tvb _U_, int offset _U_, asn
 
 
 static const per_sequence_t HandoverPreparationInformation_v1540_IEs_sequence[] = {
-  { &hf_lte_rrc_sourceRB_ConfigIntra5GC_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lte_rrc_OCTET_STRING },
+  { &hf_lte_rrc_sourceRB_ConfigIntra5GC_r15, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lte_rrc_T_sourceRB_ConfigIntra5GC_r15 },
   { &hf_lte_rrc_nonCriticalExtension_14, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_lte_rrc_T_nonCriticalExtension_02 },
   { NULL, 0, 0, NULL }
 };
@@ -109656,7 +109698,7 @@ static int dissect_UE_RadioPagingInfo_NB_r13_PDU(tvbuff_t *tvb _U_, packet_info
 
 
 /*--- End of included file: packet-lte-rrc-fn.c ---*/
-#line 3135 "./asn1/lte-rrc/packet-lte-rrc-template.c"
+#line 3137 "./asn1/lte-rrc/packet-lte-rrc-template.c"
 
 static int
 dissect_lte_rrc_DL_CCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
@@ -110501,7 +110543,7 @@ void proto_register_lte_rrc(void) {
     { &hf_lte_rrc_sourceRB_ConfigIntra5GC_r15,
       { "sourceRB-ConfigIntra5GC-r15", "lte-rrc.sourceRB_ConfigIntra5GC_r15",
         FT_BYTES, BASE_NONE, NULL, 0,
-        "OCTET_STRING", HFILL }},
+        NULL, HFILL }},
     { &hf_lte_rrc_nonCriticalExtension_14,
       { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
         FT_NONE, BASE_NONE, NULL, 0,
@@ -111025,7 +111067,7 @@ void proto_register_lte_rrc(void) {
     { &hf_lte_rrc_selectedbandCombinationInfoEN_DC_v1540,
       { "selectedbandCombinationInfoEN-DC-v1540", "lte-rrc.selectedbandCombinationInfoEN_DC_v1540",
         FT_BYTES, BASE_NONE, NULL, 0,
-        "OCTET_STRING", HFILL }},
+        NULL, HFILL }},
     { &hf_lte_rrc_wlanConnectionStatusReport_r13,
       { "wlanConnectionStatusReport-r13", "lte-rrc.wlanConnectionStatusReport_r13",
         FT_BYTES, BASE_NONE, NULL, 0,
@@ -138984,7 +139026,7 @@ void proto_register_lte_rrc(void) {
         "CarrierFreq_NB_r13", HFILL }},
 
 /*--- End of included file: packet-lte-rrc-hfarr.c ---*/
-#line 3510 "./asn1/lte-rrc/packet-lte-rrc-template.c"
+#line 3512 "./asn1/lte-rrc/packet-lte-rrc-template.c"
 
     { &hf_lte_rrc_eutra_cap_feat_group_ind_1,
       { "Indicator 1", "lte-rrc.eutra_cap_feat_group_ind_1",
@@ -142986,7 +143028,7 @@ void proto_register_lte_rrc(void) {
     &ett_lte_rrc_PCI_ARFCN_NB_r14,
 
 /*--- End of included file: packet-lte-rrc-ettarr.c ---*/
-#line 4269 "./asn1/lte-rrc/packet-lte-rrc-template.c"
+#line 4271 "./asn1/lte-rrc/packet-lte-rrc-template.c"
 
     &ett_lte_rrc_featureGroupIndicators,
     &ett_lte_rrc_featureGroupIndRel9Add,
@@ -143024,7 +143066,9 @@ void proto_register_lte_rrc(void) {
     &ett_lte_rrc_sourceContextEN_DC_r15,
     &ett_lte_rrc_requestedFreqBandsNR_MRDC_r15,
     &ett_lte_rrc_measGapPatterns_v1520,
-    &ett_lte_rrc_nas_Container_r15
+    &ett_lte_rrc_nas_Container_r15,
+    &ett_lte_rrc_sourceRB_ConfigIntra5GC_r15,
+    &ett_lte_rrc_selectedbandCombinationInfoEN_DC_v1540
   };
 
   static ei_register_info ei[] = {
@@ -143114,7 +143158,7 @@ void proto_register_lte_rrc(void) {
 
 
 /*--- End of included file: packet-lte-rrc-dis-reg.c ---*/
-#line 4361 "./asn1/lte-rrc/packet-lte-rrc-template.c"
+#line 4365 "./asn1/lte-rrc/packet-lte-rrc-template.c"
 
   lte_rrc_etws_cmas_dcs_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal);
   lte_rrc_system_info_value_changed_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal);
index 83e7338c62624648d81fc321360f978803c1c603..f56520730db8cc18f4924823fb749bd62a37e81d 100644 (file)
@@ -250,6 +250,7 @@ static int proto_nr_rrc = -1;
 static int hf_nr_rrc_nr_rrc_HandoverCommand_PDU = -1;  /* HandoverCommand */
 static int hf_nr_rrc_nr_rrc_HandoverPreparationInformation_PDU = -1;  /* HandoverPreparationInformation */
 static int hf_nr_rrc_nr_rrc_CG_Config_PDU = -1;   /* CG_Config */
+static int hf_nr_rrc_nr_rrc_BandCombinationInfoSN_PDU = -1;  /* BandCombinationInfoSN */
 static int hf_nr_rrc_nr_rrc_CG_ConfigInfo_PDU = -1;  /* CG_ConfigInfo */
 static int hf_nr_rrc_nr_rrc_ConfigRestrictInfoSCG_PDU = -1;  /* ConfigRestrictInfoSCG */
 static int hf_nr_rrc_nr_rrc_MeasurementTimingConfiguration_PDU = -1;  /* MeasurementTimingConfiguration */
@@ -41064,6 +41065,14 @@ int dissect_nr_rrc_CG_Config_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, prot
   offset += 7; offset >>= 3;
   return offset;
 }
+int dissect_nr_rrc_BandCombinationInfoSN_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+  int offset = 0;
+  asn1_ctx_t asn1_ctx;
+  asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
+  offset = dissect_nr_rrc_BandCombinationInfoSN(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_nr_rrc_BandCombinationInfoSN_PDU);
+  offset += 7; offset >>= 3;
+  return offset;
+}
 int dissect_nr_rrc_CG_ConfigInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
   int offset = 0;
   asn1_ctx_t asn1_ctx;
@@ -41402,6 +41411,10 @@ proto_register_nr_rrc(void) {
       { "CG-Config", "nr-rrc.CG_Config_element",
         FT_NONE, BASE_NONE, NULL, 0,
         NULL, HFILL }},
+    { &hf_nr_rrc_nr_rrc_BandCombinationInfoSN_PDU,
+      { "BandCombinationInfoSN", "nr-rrc.BandCombinationInfoSN_element",
+        FT_NONE, BASE_NONE, NULL, 0,
+        NULL, HFILL }},
     { &hf_nr_rrc_nr_rrc_CG_ConfigInfo_PDU,
       { "CG-ConfigInfo", "nr-rrc.CG_ConfigInfo_element",
         FT_NONE, BASE_NONE, NULL, 0,
index 6c73e23f17bcd76334c2648e9da48a6d73444c27..7a09f3352d0a0205646348eff50583cc66cc010e 100644 (file)
@@ -25,6 +25,7 @@
 int dissect_nr_rrc_HandoverCommand_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
 int dissect_nr_rrc_HandoverPreparationInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
 int dissect_nr_rrc_CG_Config_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+int dissect_nr_rrc_BandCombinationInfoSN_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
 int dissect_nr_rrc_CG_ConfigInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
 int dissect_nr_rrc_ConfigRestrictInfoSCG_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
 int dissect_nr_rrc_MeasurementTimingConfiguration_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);