2 * Copyright (c) 2019 AT&T Intellectual Property.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 * This source code is part of the near-RT RIC (RAN Intelligent Controller)
19 * platform project (RICP).
27 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
34 Test permutations of x2 setup response to protobuf enb
37 func TestUnpackX2SetupResponseAndExtract(t *testing.T) {
39 logger, _ := logger.InitLogger(InfoLevel)
41 var testCases = []struct {
42 key *entities.GlobalNbId
48 key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
49 enb: "CONNECTED MACRO_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{fdd:{ulear_fcn:1 dlear_fcn:1 ul_transmission_bandwidth:BW50 dl_transmission_bandwidth:BW50}} eutra_mode:FDD] []",
57 ProtocolIE_Container_elm
61 pLMN_Identity_t = 02 f8 29
63 macro_eNB_ID_t = 00 7a 80 (20 bits)
64 ProtocolIE_Container_elm
72 pLMN_Identity_t = 02 f8 29
73 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
76 BroadcastPLMNs_Item_elm = 02 f8 29
81 uL_Transmission_Bandwidth_t = 0x3
82 dL_Transmission_Bandwidth_t = 0x3`
84 packedPdu: "2006002a000002001500080002f82900007a8000140017000000630002f8290007ab50102002f829000001000133"},
86 key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
87 enb: "CONNECTED MACRO_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{fdd:{ulear_fcn:1 dlear_fcn:1 ul_transmission_bandwidth:BW50 dl_transmission_bandwidth:BW50}} eutra_mode:FDD pci:100 cell_id:\"02f929:0007ac50\" tac:\"0203\" broadcast_plmns:\"02f829\" broadcast_plmns:\"02f929\" choice_eutra_mode:{fdd:{ulear_fcn:2 dlear_fcn:3 ul_transmission_bandwidth:BW75 dl_transmission_bandwidth:BW75}} eutra_mode:FDD] []",
95 ProtocolIE_Container_elm
99 pLMN_Identity_t = 02 f8 29
101 macro_eNB_ID_t = 00 7a 80 (20 bits)
102 ProtocolIE_Container_elm
110 pLMN_Identity_t = 02 f8 29
111 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
114 BroadcastPLMNs_Item_elm = 02 f8 29
119 uL_Transmission_Bandwidth_t = 0x3
120 dL_Transmission_Bandwidth_t = 0x3
125 pLMN_Identity_t = 02 f9 29
126 eUTRANcellIdentifier_t = 00 07 ac 50 (28 bits)
129 BroadcastPLMNs_Item_elm = 02 f8 29
130 BroadcastPLMNs_Item_elm = 02 f9 29
135 uL_Transmission_Bandwidth_t = 0x4
136 dL_Transmission_Bandwidth_t = 0x4
138 packedPdu: "20060043000002001500080002f82900007a8000140030010000630002f8290007ab50102002f8290000010001330000640002f9290007ac50203202f82902f929000002000344"},
140 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
141 enb: "CONNECTED MACRO_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{fdd:{ulear_fcn:2 dlear_fcn:1 ul_transmission_bandwidth:BW50 dl_transmission_bandwidth:BW50}} eutra_mode:FDD] []",
145 procedureCode_t = 0x6
149 ProtocolIE_Container_elm
153 pLMN_Identity_t = 02 f8 29
155 macro_eNB_ID_t = 00 7a 80 (20 bits)
156 ProtocolIE_Container_elm
164 pLMN_Identity_t = 02 f8 29
165 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
168 BroadcastPLMNs_Item_elm = 02 f8 29
173 uL_Transmission_Bandwidth_t = 0x3
174 dL_Transmission_Bandwidth_t = 0x3
176 ProtocolExtensionContainer_elm
177 id_t = 0x5f //ul_EARFCN
179 EARFCNExtension = 0x2
181 packedPdu: "20060033000002001500080002f82900007a8000140020000000630002f8290007ab50102002f8291000010001330000005f0003800102"},
182 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
183 enb: "CONNECTED MACRO_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{fdd:{ulear_fcn:1 dlear_fcn:1 ul_transmission_bandwidth:BW50 dl_transmission_bandwidth:BW50}} eutra_mode:FDD] [02f729:0203 02f929:0304]",
187 procedureCode_t = 0x6
191 ProtocolIE_Container_elm
195 pLMN_Identity_t = 02 f8 29
197 macro_eNB_ID_t = 00 7a 80 (20 bits)
198 ProtocolIE_Container_elm
206 pLMN_Identity_t = 02 f8 29
207 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
210 BroadcastPLMNs_Item_elm = 02 f8 29
215 uL_Transmission_Bandwidth_t = 0x3
216 dL_Transmission_Bandwidth_t = 0x3
217 ProtocolIE_Container_elm
222 pLMN_Identity_t = 02 f7 29
223 mME_Group_ID_t = 02 03
225 pLMN_Identity_t = 02 f9 29
226 mME_Group_ID_t = 03 04
228 packedPdu: "2006003a000003001500080002f82900007a8000140017000000630002f8290007ab50102002f8290000010001330018000c1002f72902030002f9290304"},
230 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
231 enb: "CONNECTED MACRO_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{tdd:{ear_fcn:1 transmission_bandwidth:BW50 subframe_assignment:SA2 special_subframe_info:{special_subframe_patterns:SSP4 cyclic_prefix_dl:NORMAL cyclic_prefix_ul:EXTENDED}}} eutra_mode:TDD] []",
235 procedureCode_t = 0x6
239 ProtocolIE_Container_elm
243 pLMN_Identity_t = 02 f8 29
245 macro_eNB_ID_t = 00 7a 80 (20 bits)
246 ProtocolIE_Container_elm
254 pLMN_Identity_t = 02 f8 29
255 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
258 BroadcastPLMNs_Item_elm = 02 f8 29
262 transmission_Bandwidth_t = 0x3
263 subframeAssignment_t = 0x2
264 specialSubframe_Info_t
265 specialSubframePatterns_t = 0x4
267 cyclicPrefixUL_t = 0x1
269 packedPdu: "2006002a000002001500080002f82900007a8000140017000000630002f8290007ab50102002f829400001320820"},
270 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
271 enb: "CONNECTED MACRO_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{tdd:{ear_fcn:1 transmission_bandwidth:BW50 subframe_assignment:SA2 special_subframe_info:{special_subframe_patterns:SSP4 cyclic_prefix_dl:EXTENDED cyclic_prefix_ul:NORMAL} additional_special_subframe_info:{additional_special_subframe_patterns:SSP9 cyclic_prefix_dl:NORMAL cyclic_prefix_ul:EXTENDED}}} eutra_mode:TDD] []",
275 procedureCode_t = 0x6
279 ProtocolIE_Container_elm
283 pLMN_Identity_t = 02 f8 29
285 macro_eNB_ID_t = 00 7a 80 (20 bits)
286 ProtocolIE_Container_elm
294 pLMN_Identity_t = 02 f8 29
295 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
298 BroadcastPLMNs_Item_elm = 02 f8 29
302 transmission_Bandwidth_t = 0x3
303 subframeAssignment_t = 0x2
304 specialSubframe_Info_t
305 specialSubframePatterns_t = 0x4
306 cyclicPrefixDL_t = 0x1
309 ProtocolExtensionContainer_elm
312 AdditionalSpecialSubframe-Info
313 additionalspecialSubframePatterns_t = 0x9
315 cyclicPrefixUL_t = 0x1
317 packedPdu: "20060032000002001500080002f82900007a800014001f000000630002f8290007ab50102002f8295000013208800000006140021220"},
319 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
320 enb: "CONNECTED MACRO_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{tdd:{ear_fcn:2 transmission_bandwidth:BW50 subframe_assignment:SA2 special_subframe_info:{special_subframe_patterns:SSP4 cyclic_prefix_dl:EXTENDED cyclic_prefix_ul:NORMAL}}} eutra_mode:TDD] []",
324 procedureCode_t = 0x6
328 ProtocolIE_Container_elm
332 pLMN_Identity_t = 02 f8 29
334 macro_eNB_ID_t = 00 7a 80 (20 bits)
335 ProtocolIE_Container_elm
343 pLMN_Identity_t = 02 f8 29
344 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
347 BroadcastPLMNs_Item_elm = 02 f8 29
351 transmission_Bandwidth_t = 0x3
352 subframeAssignment_t = 0x2
353 specialSubframe_Info_t
354 specialSubframePatterns_t = 0x4
355 cyclicPrefixDL_t = 0x1
358 ProtocolExtensionContainer_elm
361 EARFCNExtension = 0x2
363 packedPdu: "20060033000002001500080002f82900007a8000140020000000630002f8290007ab50102002f8295000013208800000005e0003800102"},
365 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
366 enb: "CONNECTED MACRO_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{tdd:{ear_fcn:1 transmission_bandwidth:BW50 subframe_assignment:SA2 special_subframe_info:{special_subframe_patterns:SSP4 cyclic_prefix_dl:EXTENDED cyclic_prefix_ul:NORMAL} additional_special_subframe_extension_info:{additional_special_subframe_patterns_extension:SSP10 cyclic_prefix_dl:NORMAL cyclic_prefix_ul:NORMAL}}} eutra_mode:TDD] []",
370 procedureCode_t = 0x6
374 ProtocolIE_Container_elm
378 pLMN_Identity_t = 02 f8 29
380 macro_eNB_ID_t = 00 7a 80 (20 bits)
381 ProtocolIE_Container_elm
389 pLMN_Identity_t = 02 f8 29
390 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
393 BroadcastPLMNs_Item_elm = 02 f8 29
397 transmission_Bandwidth_t = 0x3
398 subframeAssignment_t = 0x2
399 specialSubframe_Info_t
400 specialSubframePatterns_t = 0x4
401 cyclicPrefixDL_t = 0x1
404 ProtocolExtensionContainer_elm
407 AdditionalSpecialSubframeExtension-Info
408 additionalspecialSubframePatternsExtension_t = 0
412 packedPdu: "20060031000002001500080002f82900007a800014001e000000630002f8290007ab50102002f829500001320880000000b3400100"},
414 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
415 enb: "CONNECTED MACRO_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{tdd:{ear_fcn:2 transmission_bandwidth:BW50 subframe_assignment:SA2 special_subframe_info:{special_subframe_patterns:SSP4 cyclic_prefix_dl:EXTENDED cyclic_prefix_ul:NORMAL} additional_special_subframe_info:{additional_special_subframe_patterns:SSP9 cyclic_prefix_dl:NORMAL cyclic_prefix_ul:EXTENDED} additional_special_subframe_extension_info:{additional_special_subframe_patterns_extension:SSP10 cyclic_prefix_dl:NORMAL cyclic_prefix_ul:NORMAL}}} eutra_mode:TDD] []",
419 procedureCode_t = 0x6
423 ProtocolIE_Container_elm
427 pLMN_Identity_t = 02 f8 29
429 macro_eNB_ID_t = 00 7a 80 (20 bits)
430 ProtocolIE_Container_elm
438 pLMN_Identity_t = 02 f8 29
439 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
442 BroadcastPLMNs_Item_elm = 02 f8 29
446 transmission_Bandwidth_t = 0x3
447 subframeAssignment_t = 0x2
448 specialSubframe_Info_t
449 specialSubframePatterns_t = 0x4
450 cyclicPrefixDL_t = 0x1
453 ProtocolExtensionContainer_elm
456 AdditionalSpecialSubframeExtension-Info
457 additionalspecialSubframePatternsExtension_t = 0
460 ProtocolExtensionContainer_elm
463 AdditionalSpecialSubframe-Info
464 additionalspecialSubframePatterns_t = 0x9
466 cyclicPrefixUL_t = 0x1
467 ProtocolExtensionContainer_elm
470 EARFCNExtension = 0x2
473 packedPdu: "2006003e000002001500080002f82900007a800014002b000000630002f8290007ab50102002f829500001320880000200b3400100006140021220005e0003800102"},
475 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80b0"},
476 enb: "CONNECTED HOME_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{fdd:{ulear_fcn:1 dlear_fcn:1 ul_transmission_bandwidth:BW50 dl_transmission_bandwidth:BW50}} eutra_mode:FDD number_of_antenna_ports:AN1 pci:100 cell_id:\"02f929:0007ac50\" tac:\"0203\" broadcast_plmns:\"02f829\" broadcast_plmns:\"02f929\" choice_eutra_mode:{fdd:{ulear_fcn:2 dlear_fcn:3 ul_transmission_bandwidth:BW75 dl_transmission_bandwidth:BW75}} eutra_mode:FDD] []",
480 procedureCode_t = 0x6
484 ProtocolIE_Container_elm
488 pLMN_Identity_t = 02 f8 29
490 home_eNB_ID_t = 00 7a 80 b0 (28 bits)
491 ProtocolIE_Container_elm
499 pLMN_Identity_t = 02 f8 29
500 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
503 BroadcastPLMNs_Item_elm = 02 f8 29
508 uL_Transmission_Bandwidth_t = 0x3
509 dL_Transmission_Bandwidth_t = 0x3
511 ProtocolExtensionContainer_elm
514 Number-of-Antennaports = 0
519 pLMN_Identity_t = 02 f9 29
520 eUTRANcellIdentifier_t = 00 07 ac 50 (28 bits)
523 BroadcastPLMNs_Item_elm = 02 f8 29
524 BroadcastPLMNs_Item_elm = 02 f9 29
525 eUTRA_Mode_Info_t:nb_id
529 uL_Transmission_Bandwidth_t = 0x4
530 dL_Transmission_Bandwidth_t = 0x4
533 packedPdu: "2006004b000002001500090002f82940007a80b000140037010800630002f8290007ab50102002f829000001000133000000294001000000640002f9290007ac50203202f82902f929000002000344"},
535 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a40"},
536 enb: "CONNECTED SHORT_MACRO_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{fdd:{ulear_fcn:1 dlear_fcn:1 ul_transmission_bandwidth:BW50 dl_transmission_bandwidth:BW50}} eutra_mode:FDD number_of_antenna_ports:AN1 pci:100 cell_id:\"02f929:0007ac50\" tac:\"0203\" broadcast_plmns:\"02f829\" broadcast_plmns:\"02f929\" choice_eutra_mode:{fdd:{ulear_fcn:2 dlear_fcn:3 ul_transmission_bandwidth:BW75 dl_transmission_bandwidth:BW75}} eutra_mode:FDD prach_configuration:{root_sequence_index:15 zero_correlation_zone_configuration:7 high_speed_flag:true prach_frequency_offset:30}] []",
540 procedureCode_t = 0x6
544 ProtocolIE_Container_elm
548 pLMN_Identity_t = 02 f8 29
550 short_Macro_eNB_ID_t = 00 7a 40 (18 bits)
551 ProtocolIE_Container_elm
559 pLMN_Identity_t = 02 f8 29
560 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
563 BroadcastPLMNs_Item_elm = 02 f8 29
568 uL_Transmission_Bandwidth_t = 0x3
569 dL_Transmission_Bandwidth_t = 0x3
571 ProtocolExtensionContainer_elm
574 Number-of-Antennaports = 0
579 pLMN_Identity_t = 02 f9 29
580 eUTRANcellIdentifier_t = 00 07 ac 50 (28 bits)
583 BroadcastPLMNs_Item_elm = 02 f8 29
584 BroadcastPLMNs_Item_elm = 02 f9 29
589 uL_Transmission_Bandwidth_t = 0x4
590 dL_Transmission_Bandwidth_t = 0x4
592 ProtocolExtensionContainer_elm
596 rootSequenceIndex_t = 0xf
597 zeroCorrelationIndex_t = 0x7
598 highSpeedFlag_t = true
599 prach_FreqOffset_t = 0x1e
602 packedPdu: "20060056000002001500090002f8298003007a4000140042010800630002f8290007ab50102002f829000001000133000000294001000800640002f9290007ac50203202f82902f92900000200034400000037400500000f79e0"},
604 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a40"},
605 enb: "CONNECTED SHORT_MACRO_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{fdd:{ulear_fcn:1 dlear_fcn:1 ul_transmission_bandwidth:BW50 dl_transmission_bandwidth:BW50}} eutra_mode:FDD number_of_antenna_ports:AN1 pci:100 cell_id:\"02f929:0007ac50\" tac:\"0203\" broadcast_plmns:\"02f829\" broadcast_plmns:\"02f929\" choice_eutra_mode:{fdd:{ulear_fcn:2 dlear_fcn:3 ul_transmission_bandwidth:BW75 dl_transmission_bandwidth:BW75}} eutra_mode:FDD mbsfn_subframe_infos:{radioframe_allocation_period:N8 radioframe_allocation_offset:3 subframe_allocation:\"28\" subframe_allocation_type:ONE_FRAME}] []",
609 procedureCode_t = 0x6
613 ProtocolIE_Container_elm
617 pLMN_Identity_t = 02 f8 29
619 short_Macro_eNB_ID_t = 00 7a 40 (18 bits)
620 ProtocolIE_Container_elm
628 pLMN_Identity_t = 02 f8 29
629 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
632 BroadcastPLMNs_Item_elm = 02 f8 29
637 uL_Transmission_Bandwidth_t = 0x3
638 dL_Transmission_Bandwidth_t = 0x3
640 ProtocolExtensionContainer_elm
643 Number-of-Antennaports = 0
648 pLMN_Identity_t = 02 f9 29
649 eUTRANcellIdentifier_t = 00 07 ac 50 (28 bits)
652 BroadcastPLMNs_Item_elm = 02 f8 29
653 BroadcastPLMNs_Item_elm = 02 f9 29
658 uL_Transmission_Bandwidth_t = 0x4
659 dL_Transmission_Bandwidth_t = 0x4
661 ProtocolExtensionContainer_elm
664 MBSFN-Subframe-Infolist:
665 MBSFN_Subframe_Infolist_elm
666 radioframeAllocationPeriod_t = 0x3
667 radioframeAllocationOffset_t = 0x3
668 subframeAllocation_t:
669 oneframe_t = 28 (6 bits)
671 packedPdu: "20060054000002001500090002f8298003007a4000140040010800630002f8290007ab50102002f829000001000133000000294001000800640002f9290007ac50203202f82902f929000002000344000000384003019850"},
672 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a40"},
673 enb: "CONNECTED SHORT_MACRO_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{fdd:{ulear_fcn:1 dlear_fcn:1 ul_transmission_bandwidth:BW50 dl_transmission_bandwidth:BW50}} eutra_mode:FDD number_of_antenna_ports:AN1 mbsfn_subframe_infos:{radioframe_allocation_period:N8 radioframe_allocation_offset:3 subframe_allocation:\"28\" subframe_allocation_type:ONE_FRAME} pci:100 cell_id:\"02f929:0007ac50\" tac:\"0203\" broadcast_plmns:\"02f829\" broadcast_plmns:\"02f929\" choice_eutra_mode:{fdd:{ulear_fcn:2 dlear_fcn:3 ul_transmission_bandwidth:BW75 dl_transmission_bandwidth:BW75}} eutra_mode:FDD] []",
677 procedureCode_t = 0x6
681 ProtocolIE_Container_elm
685 pLMN_Identity_t = 02 f8 29
687 short_Macro_eNB_ID_t = 00 7a 40 (18 bits)
688 ProtocolIE_Container_elm
696 pLMN_Identity_t = 02 f8 29
697 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
700 BroadcastPLMNs_Item_elm = 02 f8 29
705 uL_Transmission_Bandwidth_t = 0x3
706 dL_Transmission_Bandwidth_t = 0x3
708 ProtocolExtensionContainer_elm
711 Number-of-Antennaports = 0
712 ProtocolExtensionContainer_elm
715 MBSFN-Subframe-Infolist:
716 MBSFN_Subframe_Infolist_elm
717 radioframeAllocationPeriod_t = 0x3
718 radioframeAllocationOffset_t = 0x3
719 subframeAllocation_t:
720 oneframe_t = 28 (6 bits)
725 pLMN_Identity_t = 02 f9 29
726 eUTRANcellIdentifier_t = 00 07 ac 50 (28 bits)
729 BroadcastPLMNs_Item_elm = 02 f8 29
730 BroadcastPLMNs_Item_elm = 02 f9 29
735 uL_Transmission_Bandwidth_t = 0x4
736 dL_Transmission_Bandwidth_t = 0x4
738 packedPdu: "20060052000002001500090002f8298003007a400014003e010800630002f8290007ab50102002f82900000100013300010029400100003840030198500000640002f9290007ac50203202f82902f929000002000344"},
739 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a40"},
740 enb: "CONNECTED SHORT_MACRO_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{fdd:{ulear_fcn:1 dlear_fcn:1 ul_transmission_bandwidth:BW50 dl_transmission_bandwidth:BW50}} eutra_mode:FDD number_of_antenna_ports:AN1 prach_configuration:{root_sequence_index:15 zero_correlation_zone_configuration:7 high_speed_flag:true prach_frequency_offset:30} pci:100 cell_id:\"02f929:0007ac50\" tac:\"0203\" broadcast_plmns:\"02f829\" broadcast_plmns:\"02f929\" choice_eutra_mode:{fdd:{ulear_fcn:2 dlear_fcn:3 ul_transmission_bandwidth:BW75 dl_transmission_bandwidth:BW75}} eutra_mode:FDD] []",
744 procedureCode_t = 0x6
748 ProtocolIE_Container_elm
752 pLMN_Identity_t = 02 f8 29
754 short_Macro_eNB_ID_t = 00 7a 40 (18 bits)
755 ProtocolIE_Container_elm
763 pLMN_Identity_t = 02 f8 29
764 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
767 BroadcastPLMNs_Item_elm = 02 f8 29
772 uL_Transmission_Bandwidth_t = 0x3
773 dL_Transmission_Bandwidth_t = 0x3
775 ProtocolExtensionContainer_elm
778 Number-of-Antennaports = 0
779 ProtocolExtensionContainer_elm
783 rootSequenceIndex_t = 0xf
784 zeroCorrelationIndex_t = 0x7
785 highSpeedFlag_t = true
786 prach_FreqOffset_t = 0x1e
791 pLMN_Identity_t = 02 f9 29
792 eUTRANcellIdentifier_t = 00 07 ac 50 (28 bits)
795 BroadcastPLMNs_Item_elm = 02 f8 29
796 BroadcastPLMNs_Item_elm = 02 f9 29
801 uL_Transmission_Bandwidth_t = 0x4
802 dL_Transmission_Bandwidth_t = 0x4
804 packedPdu: "20060054000002001500090002f8298003007a4000140040010800630002f8290007ab50102002f829000001000133000100294001000037400500000f79e00000640002f9290007ac50203202f82902f929000002000344"},
805 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a08"},
806 enb: "CONNECTED LONG_MACRO_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{fdd:{ulear_fcn:1 dlear_fcn:1 ul_transmission_bandwidth:BW50 dl_transmission_bandwidth:BW50}} eutra_mode:FDD prach_configuration:{root_sequence_index:15 zero_correlation_zone_configuration:7 high_speed_flag:true prach_frequency_offset:30 prach_configuration_index:60} pci:100 cell_id:\"02f929:0007ac50\" tac:\"0203\" broadcast_plmns:\"02f829\" broadcast_plmns:\"02f929\" choice_eutra_mode:{fdd:{ulear_fcn:2 dlear_fcn:3 ul_transmission_bandwidth:BW75 dl_transmission_bandwidth:BW75}} eutra_mode:FDD] []",
810 procedureCode_t = 0x6
814 ProtocolIE_Container_elm
818 pLMN_Identity_t = 02 f8 29
820 long_Macro_eNB_ID_t = 00 7a 08 (21 bits)
821 ProtocolIE_Container_elm
829 pLMN_Identity_t = 02 f8 29
830 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
833 BroadcastPLMNs_Item_elm = 02 f8 29
838 uL_Transmission_Bandwidth_t = 0x3
839 dL_Transmission_Bandwidth_t = 0x3
841 ProtocolExtensionContainer_elm
845 rootSequenceIndex_t = 0xf
846 zeroCorrelationIndex_t = 0x7
847 highSpeedFlag_t = true
848 prach_FreqOffset_t = 0x1e
849 prach_ConfigIndex_t = 0x3c
854 pLMN_Identity_t = 02 f9 29
855 eUTRANcellIdentifier_t = 00 07 ac 50 (28 bits)
858 BroadcastPLMNs_Item_elm = 02 f8 29
859 BroadcastPLMNs_Item_elm = 02 f9 29
864 uL_Transmission_Bandwidth_t = 0x4
865 dL_Transmission_Bandwidth_t = 0x4
867 //packedPdu: "20060050000002001500090002f8298103007a080014003c010800630002f8290007ab50102002f82900000100013300000037400640000f79ef000000640002f9290007ac50203202f82902f929000002000344"},
868 packedPdu: "20060050000002001500090002f829c003007a080014003c010800630002f8290007ab50102002f82900000100013300000037400640000f79ef000000640002f9290007ac50203202f82902f929000002000344"},
870 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
871 enb: "CONNECTED MACRO_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{fdd:{ulear_fcn:1 dlear_fcn:1 ul_transmission_bandwidth:BW50 dl_transmission_bandwidth:BW50}} eutra_mode:FDD csg_id:\"0007aba0\" freq_band_indicator_priority:BROADCASTED bandwidth_reduced_si:SCHEDULED] []",
875 procedureCode_t = 0x6
879 ProtocolIE_Container_elm
883 pLMN_Identity_t = 02 f8 29
885 macro_eNB_ID_t = 00 7a 80 (20 bits)
886 ProtocolIE_Container_elm
894 pLMN_Identity_t = 02 f8 29
895 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
898 BroadcastPLMNs_Item_elm = 02 f8 29
903 uL_Transmission_Bandwidth_t = 0x3
904 dL_Transmission_Bandwidth_t = 0x3
906 ProtocolExtensionContainer_elm
909 CSG-Id = 00 07 ab a0 (27 bits)
910 ProtocolExtensionContainer_elm
913 FreqBandIndicatorPriority = 0x1
914 ProtocolExtensionContainer_elm
917 BandwidthReducedSI = 0
919 packedPdu: "2006003e000002001500080002f82900007a800014002b000800630002f8290007ab50102002f8290000010001330002004640040007aba000a040014000b4400100"},
921 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
922 enb: "CONNECTED MACRO_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{fdd:{ulear_fcn:1 dlear_fcn:1 ul_transmission_bandwidth:BW50 dl_transmission_bandwidth:BW50}} eutra_mode:FDD mbms_service_area_identities:\"02f8\" mbms_service_area_identities:\"03f9\" multiband_infos:1 multiband_infos:2 multiband_infos:3 freq_band_indicator_priority:NOT_BROADCASTED] []",
926 procedureCode_t = 0x6
930 ProtocolIE_Container_elm
934 pLMN_Identity_t = 02 f8 29
936 macro_eNB_ID_t = 00 7a 80 (20 bits)
937 ProtocolIE_Container_elm
945 pLMN_Identity_t = 02 f8 29
946 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
949 BroadcastPLMNs_Item_elm = 02 f8 29
954 uL_Transmission_Bandwidth_t = 0x3
955 dL_Transmission_Bandwidth_t = 0x3
957 ProtocolExtensionContainer_elm
960 MBMS-Service-Area-Identity-List:
961 MBMS_Service_Area_Identity_List_elm = 02 f8
962 MBMS_Service_Area_Identity_List_elm = 03 f9
963 ProtocolExtensionContainer_elm
966 FreqBandIndicatorPriority = 0
967 ProtocolExtensionContainer_elm
971 MultibandInfoList_elm
972 freqBandIndicator_t = 0x1
973 MultibandInfoList_elm
974 freqBandIndicator_t = 0x2
975 MultibandInfoList_elm
976 freqBandIndicator_t = 0x3
978 packedPdu: "20060044000002001500080002f82900007a8000140031000800630002f8290007ab50102002f8290000010001330002004f40050102f803f900a040010000544006200000010002"},
979 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
980 enb: "CONNECTED MACRO_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{fdd:{ulear_fcn:1 dlear_fcn:1 ul_transmission_bandwidth:BW50 dl_transmission_bandwidth:BW50}} eutra_mode:FDD neighbour_infos:{ecgi:\"02f829:0007ab50\" pci:99 ear_fcn:1} neighbour_infos:{ecgi:\"03f930:0008bc50\" pci:100 ear_fcn:2}] []",
984 procedureCode_t = 0x6
988 ProtocolIE_Container_elm
992 pLMN_Identity_t = 02 f8 29
994 macro_eNB_ID_t = 00 7a 80 (20 bits)
995 ProtocolIE_Container_elm
1003 pLMN_Identity_t = 02 f8 29
1004 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
1007 BroadcastPLMNs_Item_elm = 02 f8 29
1012 uL_Transmission_Bandwidth_t = 0x3
1013 dL_Transmission_Bandwidth_t = 0x3
1015 Neighbour_Information_elm
1017 pLMN_Identity_t = 02 f8 29
1018 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
1021 Neighbour_Information_elm
1023 pLMN_Identity_t = 03 f9 30
1024 eUTRANcellIdentifier_t = 00 08 bc 50 (28 bits)
1028 packedPdu: "20060044000002001500080002f82900007a8000140031004000630002f8290007ab50102002f82900000100013300020002f8290007ab50006300010003f9300008bc5000640002"},
1030 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
1031 enb: "CONNECTED MACRO_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{fdd:{ulear_fcn:1 dlear_fcn:1 ul_transmission_bandwidth:BW50 dl_transmission_bandwidth:BW50}} eutra_mode:FDD neighbour_infos:{ecgi:\"02f829:0007ab50\" pci:99 ear_fcn:1 tac:\"0102\"} neighbour_infos:{ecgi:\"03f930:0008bc50\" pci:100 ear_fcn:3}] []",
1035 procedureCode_t = 0x6
1039 ProtocolIE_Container_elm
1043 pLMN_Identity_t = 02 f8 29
1045 macro_eNB_ID_t = 00 7a 80 (20 bits)
1046 ProtocolIE_Container_elm
1054 pLMN_Identity_t = 02 f8 29
1055 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
1058 BroadcastPLMNs_Item_elm = 02 f8 29
1063 uL_Transmission_Bandwidth_t = 0x3
1064 dL_Transmission_Bandwidth_t = 0x3
1066 Neighbour_Information_elm
1068 pLMN_Identity_t = 02 f8 29
1069 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
1073 ProtocolExtensionContainer_elm
1077 Neighbour_Information_elm
1079 pLMN_Identity_t = 03 f9 30
1080 eUTRANcellIdentifier_t = 00 08 bc 50 (28 bits)
1084 ProtocolExtensionContainer_elm
1087 EARFCNExtension = 0x3
1089 packedPdu: "20060055000002001500080002f82900007a8000140042004000630002f8290007ab50102002f82900000100013300024002f8290007ab50006300010000004c400201024003f9300008bc50006400020000005e0003800103"},
1091 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
1092 enb: "CONNECTED MACRO_ENB [pci:99 cell_id:\"02f829:0007ab50\" tac:\"0102\" broadcast_plmns:\"02f829\" choice_eutra_mode:{fdd:{ulear_fcn:1 dlear_fcn:1 ul_transmission_bandwidth:BW50 dl_transmission_bandwidth:BW50}} eutra_mode:FDD neighbour_infos:{ecgi:\"02f829:0007ab50\" pci:99 ear_fcn:1 tac:\"0102\"} neighbour_infos:{ecgi:\"03f930:0008bc50\" pci:100 ear_fcn:3}] []",
1096 procedureCode_t = 0x6
1100 ProtocolIE_Container_elm
1104 pLMN_Identity_t = 02 f8 29
1106 macro_eNB_ID_t = 00 7a 80 (20 bits)
1107 ProtocolIE_Container_elm
1115 pLMN_Identity_t = 02 f8 29
1116 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
1119 BroadcastPLMNs_Item_elm = 02 f8 29
1124 uL_Transmission_Bandwidth_t = 0x3
1125 dL_Transmission_Bandwidth_t = 0x3
1127 Neighbour_Information_elm
1129 pLMN_Identity_t = 02 f8 29
1130 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
1134 ProtocolExtensionContainer_elm
1138 Neighbour_Information_elm
1140 pLMN_Identity_t = 03 f9 30
1141 eUTRANcellIdentifier_t = 00 08 bc 50 (28 bits)
1145 ProtocolExtensionContainer_elm
1148 EARFCNExtension = 0x3
1150 packedPdu: "20060055000002001500080002f82900007a8000140042004000630002f8290007ab50102002f82900000100013300024002f8290007ab50006300010000004c400201024003f9300008bc50006400020000005e0003800103",
1151 /*failure: fmt.Errorf("getAtom for path [successfulOutcome_t X2SetupResponse protocolIEs_t ProtocolIE_Container_elm GlobalENB-ID pLMN_Identity_t] failed, rc = 2" /NO_SPACE_LEFT),*/},
1154 converter := NewX2SetupResponseConverter(logger)
1156 for _, tc := range testCases {
1157 t.Run(tc.packedPdu, func(t *testing.T) {
1160 _, err := fmt.Sscanf(tc.packedPdu, "%x", &payload)
1162 t.Errorf("convert inputPayloadAsStr to payloadAsByte. Error: %v\n", err)
1165 key, enb, err := converter.UnpackX2SetupResponseAndExtract(payload)
1168 if tc.failure == nil {
1169 t.Errorf("want: success, got: error: %v\n", err)
1171 if strings.Compare(err.Error(), tc.failure.Error()) != 0 {
1172 t.Errorf("want: %s, got: %s", tc.failure, err)
1178 if tc.failure == nil {
1179 t.Errorf("want: key=%v, got: empty key", tc.key)
1182 if strings.Compare(key.PlmnId, tc.key.PlmnId) != 0 || strings.Compare(key.NbId, tc.key.NbId) != 0 {
1183 t.Errorf("want: key=%s, got: %s", tc.key, key)
1188 if tc.failure == nil {
1189 t.Errorf("want: enb=%s, got: empty enb", tc.enb)
1192 nb := &entities.NodebInfo{}
1193 nb.ConnectionStatus = entities.ConnectionStatus_CONNECTED
1194 nb.Configuration = &entities.NodebInfo_Enb{Enb: enb}
1195 embStr := fmt.Sprintf("%s %s %s %s", nb.ConnectionStatus, enb.EnbType, enb.ServedCells, enb.GuGroupIds)
1197 space := regexp.MustCompile(`\s+`)
1198 s1 := space.ReplaceAllString(embStr, " ")
1199 s2 := space.ReplaceAllString(tc.enb," ")
1203 if !strings.EqualFold(s1, s2) {
1204 t.Errorf("want: enb=%s, got: %s", tc.enb, embStr)