1 /*******************************************************************************
3 * Copyright (c) 2019 AT&T Intellectual Property.
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 *******************************************************************************/
23 "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
29 Test permutations of x2 setup response to protobuf enb
32 func TestUnpackX2SetupResponseAndExtract(t *testing.T) {
33 logger, _ := logger.InitLogger(logger.InfoLevel)
35 var testCases = []struct {
36 key *entities.GlobalNbId
42 key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
43 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 ] []",
51 ProtocolIE_Container_elm
55 pLMN_Identity_t = 02 f8 29
57 macro_eNB_ID_t = 00 7a 80 (20 bits)
58 ProtocolIE_Container_elm
66 pLMN_Identity_t = 02 f8 29
67 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
70 BroadcastPLMNs_Item_elm = 02 f8 29
75 uL_Transmission_Bandwidth_t = 0x3
76 dL_Transmission_Bandwidth_t = 0x3`
78 packedPdu: "2006002a000002001500080002f82900007a8000140017000000630002f8290007ab50102002f829000001000133"},
80 key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
81 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 ] []",
89 ProtocolIE_Container_elm
93 pLMN_Identity_t = 02 f8 29
95 macro_eNB_ID_t = 00 7a 80 (20 bits)
96 ProtocolIE_Container_elm
104 pLMN_Identity_t = 02 f8 29
105 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
108 BroadcastPLMNs_Item_elm = 02 f8 29
113 uL_Transmission_Bandwidth_t = 0x3
114 dL_Transmission_Bandwidth_t = 0x3
119 pLMN_Identity_t = 02 f9 29
120 eUTRANcellIdentifier_t = 00 07 ac 50 (28 bits)
123 BroadcastPLMNs_Item_elm = 02 f8 29
124 BroadcastPLMNs_Item_elm = 02 f9 29
129 uL_Transmission_Bandwidth_t = 0x4
130 dL_Transmission_Bandwidth_t = 0x4
132 packedPdu: "20060043000002001500080002f82900007a8000140030010000630002f8290007ab50102002f8290000010001330000640002f9290007ac50203202f82902f929000002000344"},
134 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
135 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 ] []",
139 procedureCode_t = 0x6
143 ProtocolIE_Container_elm
147 pLMN_Identity_t = 02 f8 29
149 macro_eNB_ID_t = 00 7a 80 (20 bits)
150 ProtocolIE_Container_elm
158 pLMN_Identity_t = 02 f8 29
159 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
162 BroadcastPLMNs_Item_elm = 02 f8 29
167 uL_Transmission_Bandwidth_t = 0x3
168 dL_Transmission_Bandwidth_t = 0x3
170 ProtocolExtensionContainer_elm
171 id_t = 0x5f //ul_EARFCN
173 EARFCNExtension = 0x2
175 packedPdu: "20060033000002001500080002f82900007a8000140020000000630002f8290007ab50102002f8291000010001330000005f0003800102"},
176 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
177 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]",
181 procedureCode_t = 0x6
185 ProtocolIE_Container_elm
189 pLMN_Identity_t = 02 f8 29
191 macro_eNB_ID_t = 00 7a 80 (20 bits)
192 ProtocolIE_Container_elm
200 pLMN_Identity_t = 02 f8 29
201 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
204 BroadcastPLMNs_Item_elm = 02 f8 29
209 uL_Transmission_Bandwidth_t = 0x3
210 dL_Transmission_Bandwidth_t = 0x3
211 ProtocolIE_Container_elm
216 pLMN_Identity_t = 02 f7 29
217 mME_Group_ID_t = 02 03
219 pLMN_Identity_t = 02 f9 29
220 mME_Group_ID_t = 03 04
222 packedPdu: "2006003a000003001500080002f82900007a8000140017000000630002f8290007ab50102002f8290000010001330018000c1002f72902030002f9290304"},
224 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
225 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 ] []",
229 procedureCode_t = 0x6
233 ProtocolIE_Container_elm
237 pLMN_Identity_t = 02 f8 29
239 macro_eNB_ID_t = 00 7a 80 (20 bits)
240 ProtocolIE_Container_elm
248 pLMN_Identity_t = 02 f8 29
249 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
252 BroadcastPLMNs_Item_elm = 02 f8 29
256 transmission_Bandwidth_t = 0x3
257 subframeAssignment_t = 0x2
258 specialSubframe_Info_t
259 specialSubframePatterns_t = 0x4
261 cyclicPrefixUL_t = 0x1
263 packedPdu: "2006002a000002001500080002f82900007a8000140017000000630002f8290007ab50102002f829400001320820"},
264 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
265 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 ] []",
269 procedureCode_t = 0x6
273 ProtocolIE_Container_elm
277 pLMN_Identity_t = 02 f8 29
279 macro_eNB_ID_t = 00 7a 80 (20 bits)
280 ProtocolIE_Container_elm
288 pLMN_Identity_t = 02 f8 29
289 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
292 BroadcastPLMNs_Item_elm = 02 f8 29
296 transmission_Bandwidth_t = 0x3
297 subframeAssignment_t = 0x2
298 specialSubframe_Info_t
299 specialSubframePatterns_t = 0x4
300 cyclicPrefixDL_t = 0x1
303 ProtocolExtensionContainer_elm
306 AdditionalSpecialSubframe-Info
307 additionalspecialSubframePatterns_t = 0x9
309 cyclicPrefixUL_t = 0x1
311 packedPdu: "20060032000002001500080002f82900007a800014001f000000630002f8290007ab50102002f8295000013208800000006140021220"},
313 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
314 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 ] []",
318 procedureCode_t = 0x6
322 ProtocolIE_Container_elm
326 pLMN_Identity_t = 02 f8 29
328 macro_eNB_ID_t = 00 7a 80 (20 bits)
329 ProtocolIE_Container_elm
337 pLMN_Identity_t = 02 f8 29
338 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
341 BroadcastPLMNs_Item_elm = 02 f8 29
345 transmission_Bandwidth_t = 0x3
346 subframeAssignment_t = 0x2
347 specialSubframe_Info_t
348 specialSubframePatterns_t = 0x4
349 cyclicPrefixDL_t = 0x1
352 ProtocolExtensionContainer_elm
355 EARFCNExtension = 0x2
357 packedPdu: "20060033000002001500080002f82900007a8000140020000000630002f8290007ab50102002f8295000013208800000005e0003800102"},
359 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
360 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 ] []",
364 procedureCode_t = 0x6
368 ProtocolIE_Container_elm
372 pLMN_Identity_t = 02 f8 29
374 macro_eNB_ID_t = 00 7a 80 (20 bits)
375 ProtocolIE_Container_elm
383 pLMN_Identity_t = 02 f8 29
384 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
387 BroadcastPLMNs_Item_elm = 02 f8 29
391 transmission_Bandwidth_t = 0x3
392 subframeAssignment_t = 0x2
393 specialSubframe_Info_t
394 specialSubframePatterns_t = 0x4
395 cyclicPrefixDL_t = 0x1
398 ProtocolExtensionContainer_elm
401 AdditionalSpecialSubframeExtension-Info
402 additionalspecialSubframePatternsExtension_t = 0
406 packedPdu: "20060031000002001500080002f82900007a800014001e000000630002f8290007ab50102002f829500001320880000000b3400100"},
408 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
409 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 ] []",
413 procedureCode_t = 0x6
417 ProtocolIE_Container_elm
421 pLMN_Identity_t = 02 f8 29
423 macro_eNB_ID_t = 00 7a 80 (20 bits)
424 ProtocolIE_Container_elm
432 pLMN_Identity_t = 02 f8 29
433 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
436 BroadcastPLMNs_Item_elm = 02 f8 29
440 transmission_Bandwidth_t = 0x3
441 subframeAssignment_t = 0x2
442 specialSubframe_Info_t
443 specialSubframePatterns_t = 0x4
444 cyclicPrefixDL_t = 0x1
447 ProtocolExtensionContainer_elm
450 AdditionalSpecialSubframeExtension-Info
451 additionalspecialSubframePatternsExtension_t = 0
454 ProtocolExtensionContainer_elm
457 AdditionalSpecialSubframe-Info
458 additionalspecialSubframePatterns_t = 0x9
460 cyclicPrefixUL_t = 0x1
461 ProtocolExtensionContainer_elm
464 EARFCNExtension = 0x2
467 packedPdu: "2006003e000002001500080002f82900007a800014002b000000630002f8290007ab50102002f829500001320880000200b3400100006140021220005e0003800102"},
469 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80b0"},
470 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 ] []",
474 procedureCode_t = 0x6
478 ProtocolIE_Container_elm
482 pLMN_Identity_t = 02 f8 29
484 home_eNB_ID_t = 00 7a 80 b0 (28 bits)
485 ProtocolIE_Container_elm
493 pLMN_Identity_t = 02 f8 29
494 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
497 BroadcastPLMNs_Item_elm = 02 f8 29
502 uL_Transmission_Bandwidth_t = 0x3
503 dL_Transmission_Bandwidth_t = 0x3
505 ProtocolExtensionContainer_elm
508 Number-of-Antennaports = 0
513 pLMN_Identity_t = 02 f9 29
514 eUTRANcellIdentifier_t = 00 07 ac 50 (28 bits)
517 BroadcastPLMNs_Item_elm = 02 f8 29
518 BroadcastPLMNs_Item_elm = 02 f9 29
519 eUTRA_Mode_Info_t:nb_id
523 uL_Transmission_Bandwidth_t = 0x4
524 dL_Transmission_Bandwidth_t = 0x4
527 packedPdu: "2006004b000002001500090002f82940007a80b000140037010800630002f8290007ab50102002f829000001000133000000294001000000640002f9290007ac50203202f82902f929000002000344"},
529 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a40"},
530 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 > ] []",
534 procedureCode_t = 0x6
538 ProtocolIE_Container_elm
542 pLMN_Identity_t = 02 f8 29
544 short_Macro_eNB_ID_t = 00 7a 40 (18 bits)
545 ProtocolIE_Container_elm
553 pLMN_Identity_t = 02 f8 29
554 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
557 BroadcastPLMNs_Item_elm = 02 f8 29
562 uL_Transmission_Bandwidth_t = 0x3
563 dL_Transmission_Bandwidth_t = 0x3
565 ProtocolExtensionContainer_elm
568 Number-of-Antennaports = 0
573 pLMN_Identity_t = 02 f9 29
574 eUTRANcellIdentifier_t = 00 07 ac 50 (28 bits)
577 BroadcastPLMNs_Item_elm = 02 f8 29
578 BroadcastPLMNs_Item_elm = 02 f9 29
583 uL_Transmission_Bandwidth_t = 0x4
584 dL_Transmission_Bandwidth_t = 0x4
586 ProtocolExtensionContainer_elm
590 rootSequenceIndex_t = 0xf
591 zeroCorrelationIndex_t = 0x7
592 highSpeedFlag_t = true
593 prach_FreqOffset_t = 0x1e
596 packedPdu: "20060056000002001500090002f8298003007a4000140042010800630002f8290007ab50102002f829000001000133000000294001000800640002f9290007ac50203202f82902f92900000200034400000037400500000f79e0"},
598 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a40"},
599 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 > ] []",
603 procedureCode_t = 0x6
607 ProtocolIE_Container_elm
611 pLMN_Identity_t = 02 f8 29
613 short_Macro_eNB_ID_t = 00 7a 40 (18 bits)
614 ProtocolIE_Container_elm
622 pLMN_Identity_t = 02 f8 29
623 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
626 BroadcastPLMNs_Item_elm = 02 f8 29
631 uL_Transmission_Bandwidth_t = 0x3
632 dL_Transmission_Bandwidth_t = 0x3
634 ProtocolExtensionContainer_elm
637 Number-of-Antennaports = 0
642 pLMN_Identity_t = 02 f9 29
643 eUTRANcellIdentifier_t = 00 07 ac 50 (28 bits)
646 BroadcastPLMNs_Item_elm = 02 f8 29
647 BroadcastPLMNs_Item_elm = 02 f9 29
652 uL_Transmission_Bandwidth_t = 0x4
653 dL_Transmission_Bandwidth_t = 0x4
655 ProtocolExtensionContainer_elm
658 MBSFN-Subframe-Infolist:
659 MBSFN_Subframe_Infolist_elm
660 radioframeAllocationPeriod_t = 0x3
661 radioframeAllocationOffset_t = 0x3
662 subframeAllocation_t:
663 oneframe_t = 28 (6 bits)
665 packedPdu: "20060054000002001500090002f8298003007a4000140040010800630002f8290007ab50102002f829000001000133000000294001000800640002f9290007ac50203202f82902f929000002000344000000384003019850"},
666 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a40"},
667 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 ] []",
671 procedureCode_t = 0x6
675 ProtocolIE_Container_elm
679 pLMN_Identity_t = 02 f8 29
681 short_Macro_eNB_ID_t = 00 7a 40 (18 bits)
682 ProtocolIE_Container_elm
690 pLMN_Identity_t = 02 f8 29
691 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
694 BroadcastPLMNs_Item_elm = 02 f8 29
699 uL_Transmission_Bandwidth_t = 0x3
700 dL_Transmission_Bandwidth_t = 0x3
702 ProtocolExtensionContainer_elm
705 Number-of-Antennaports = 0
706 ProtocolExtensionContainer_elm
709 MBSFN-Subframe-Infolist:
710 MBSFN_Subframe_Infolist_elm
711 radioframeAllocationPeriod_t = 0x3
712 radioframeAllocationOffset_t = 0x3
713 subframeAllocation_t:
714 oneframe_t = 28 (6 bits)
719 pLMN_Identity_t = 02 f9 29
720 eUTRANcellIdentifier_t = 00 07 ac 50 (28 bits)
723 BroadcastPLMNs_Item_elm = 02 f8 29
724 BroadcastPLMNs_Item_elm = 02 f9 29
729 uL_Transmission_Bandwidth_t = 0x4
730 dL_Transmission_Bandwidth_t = 0x4
732 packedPdu: "20060052000002001500090002f8298003007a400014003e010800630002f8290007ab50102002f82900000100013300010029400100003840030198500000640002f9290007ac50203202f82902f929000002000344"},
733 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a40"},
734 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 ] []",
738 procedureCode_t = 0x6
742 ProtocolIE_Container_elm
746 pLMN_Identity_t = 02 f8 29
748 short_Macro_eNB_ID_t = 00 7a 40 (18 bits)
749 ProtocolIE_Container_elm
757 pLMN_Identity_t = 02 f8 29
758 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
761 BroadcastPLMNs_Item_elm = 02 f8 29
766 uL_Transmission_Bandwidth_t = 0x3
767 dL_Transmission_Bandwidth_t = 0x3
769 ProtocolExtensionContainer_elm
772 Number-of-Antennaports = 0
773 ProtocolExtensionContainer_elm
777 rootSequenceIndex_t = 0xf
778 zeroCorrelationIndex_t = 0x7
779 highSpeedFlag_t = true
780 prach_FreqOffset_t = 0x1e
785 pLMN_Identity_t = 02 f9 29
786 eUTRANcellIdentifier_t = 00 07 ac 50 (28 bits)
789 BroadcastPLMNs_Item_elm = 02 f8 29
790 BroadcastPLMNs_Item_elm = 02 f9 29
795 uL_Transmission_Bandwidth_t = 0x4
796 dL_Transmission_Bandwidth_t = 0x4
798 packedPdu: "20060054000002001500090002f8298003007a4000140040010800630002f8290007ab50102002f829000001000133000100294001000037400500000f79e00000640002f9290007ac50203202f82902f929000002000344"},
799 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a08"},
800 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 ] []",
804 procedureCode_t = 0x6
808 ProtocolIE_Container_elm
812 pLMN_Identity_t = 02 f8 29
814 long_Macro_eNB_ID_t = 00 7a 08 (21 bits)
815 ProtocolIE_Container_elm
823 pLMN_Identity_t = 02 f8 29
824 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
827 BroadcastPLMNs_Item_elm = 02 f8 29
832 uL_Transmission_Bandwidth_t = 0x3
833 dL_Transmission_Bandwidth_t = 0x3
835 ProtocolExtensionContainer_elm
839 rootSequenceIndex_t = 0xf
840 zeroCorrelationIndex_t = 0x7
841 highSpeedFlag_t = true
842 prach_FreqOffset_t = 0x1e
843 prach_ConfigIndex_t = 0x3c
848 pLMN_Identity_t = 02 f9 29
849 eUTRANcellIdentifier_t = 00 07 ac 50 (28 bits)
852 BroadcastPLMNs_Item_elm = 02 f8 29
853 BroadcastPLMNs_Item_elm = 02 f9 29
858 uL_Transmission_Bandwidth_t = 0x4
859 dL_Transmission_Bandwidth_t = 0x4
861 //packedPdu: "20060050000002001500090002f8298103007a080014003c010800630002f8290007ab50102002f82900000100013300000037400640000f79ef000000640002f9290007ac50203202f82902f929000002000344"},
862 packedPdu: "20060050000002001500090002f829c003007a080014003c010800630002f8290007ab50102002f82900000100013300000037400640000f79ef000000640002f9290007ac50203202f82902f929000002000344"},
864 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
865 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 ] []",
869 procedureCode_t = 0x6
873 ProtocolIE_Container_elm
877 pLMN_Identity_t = 02 f8 29
879 macro_eNB_ID_t = 00 7a 80 (20 bits)
880 ProtocolIE_Container_elm
888 pLMN_Identity_t = 02 f8 29
889 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
892 BroadcastPLMNs_Item_elm = 02 f8 29
897 uL_Transmission_Bandwidth_t = 0x3
898 dL_Transmission_Bandwidth_t = 0x3
900 ProtocolExtensionContainer_elm
903 CSG-Id = 00 07 ab a0 (27 bits)
904 ProtocolExtensionContainer_elm
907 FreqBandIndicatorPriority = 0x1
908 ProtocolExtensionContainer_elm
911 BandwidthReducedSI = 0
913 packedPdu: "2006003e000002001500080002f82900007a800014002b000800630002f8290007ab50102002f8290000010001330002004640040007aba000a040014000b4400100"},
915 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
916 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 ] []",
920 procedureCode_t = 0x6
924 ProtocolIE_Container_elm
928 pLMN_Identity_t = 02 f8 29
930 macro_eNB_ID_t = 00 7a 80 (20 bits)
931 ProtocolIE_Container_elm
939 pLMN_Identity_t = 02 f8 29
940 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
943 BroadcastPLMNs_Item_elm = 02 f8 29
948 uL_Transmission_Bandwidth_t = 0x3
949 dL_Transmission_Bandwidth_t = 0x3
951 ProtocolExtensionContainer_elm
954 MBMS-Service-Area-Identity-List:
955 MBMS_Service_Area_Identity_List_elm = 02 f8
956 MBMS_Service_Area_Identity_List_elm = 03 f9
957 ProtocolExtensionContainer_elm
960 FreqBandIndicatorPriority = 0
961 ProtocolExtensionContainer_elm
965 MultibandInfoList_elm
966 freqBandIndicator_t = 0x1
967 MultibandInfoList_elm
968 freqBandIndicator_t = 0x2
969 MultibandInfoList_elm
970 freqBandIndicator_t = 0x3
972 packedPdu: "20060044000002001500080002f82900007a8000140031000800630002f8290007ab50102002f8290000010001330002004f40050102f803f900a040010000544006200000010002"},
973 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
974 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 > ] []",
978 procedureCode_t = 0x6
982 ProtocolIE_Container_elm
986 pLMN_Identity_t = 02 f8 29
988 macro_eNB_ID_t = 00 7a 80 (20 bits)
989 ProtocolIE_Container_elm
997 pLMN_Identity_t = 02 f8 29
998 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
1001 BroadcastPLMNs_Item_elm = 02 f8 29
1006 uL_Transmission_Bandwidth_t = 0x3
1007 dL_Transmission_Bandwidth_t = 0x3
1009 Neighbour_Information_elm
1011 pLMN_Identity_t = 02 f8 29
1012 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
1015 Neighbour_Information_elm
1017 pLMN_Identity_t = 03 f9 30
1018 eUTRANcellIdentifier_t = 00 08 bc 50 (28 bits)
1022 packedPdu: "20060044000002001500080002f82900007a8000140031004000630002f8290007ab50102002f82900000100013300020002f8290007ab50006300010003f9300008bc5000640002"},
1024 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
1025 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 > ] []",
1029 procedureCode_t = 0x6
1033 ProtocolIE_Container_elm
1037 pLMN_Identity_t = 02 f8 29
1039 macro_eNB_ID_t = 00 7a 80 (20 bits)
1040 ProtocolIE_Container_elm
1048 pLMN_Identity_t = 02 f8 29
1049 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
1052 BroadcastPLMNs_Item_elm = 02 f8 29
1057 uL_Transmission_Bandwidth_t = 0x3
1058 dL_Transmission_Bandwidth_t = 0x3
1060 Neighbour_Information_elm
1062 pLMN_Identity_t = 02 f8 29
1063 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
1067 ProtocolExtensionContainer_elm
1071 Neighbour_Information_elm
1073 pLMN_Identity_t = 03 f9 30
1074 eUTRANcellIdentifier_t = 00 08 bc 50 (28 bits)
1078 ProtocolExtensionContainer_elm
1081 EARFCNExtension = 0x3
1083 packedPdu: "20060055000002001500080002f82900007a8000140042004000630002f8290007ab50102002f82900000100013300024002f8290007ab50006300010000004c400201024003f9300008bc50006400020000005e0003800103"},
1085 {key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
1086 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 > ] []",
1090 procedureCode_t = 0x6
1094 ProtocolIE_Container_elm
1098 pLMN_Identity_t = 02 f8 29
1100 macro_eNB_ID_t = 00 7a 80 (20 bits)
1101 ProtocolIE_Container_elm
1109 pLMN_Identity_t = 02 f8 29
1110 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
1113 BroadcastPLMNs_Item_elm = 02 f8 29
1118 uL_Transmission_Bandwidth_t = 0x3
1119 dL_Transmission_Bandwidth_t = 0x3
1121 Neighbour_Information_elm
1123 pLMN_Identity_t = 02 f8 29
1124 eUTRANcellIdentifier_t = 00 07 ab 50 (28 bits)
1128 ProtocolExtensionContainer_elm
1132 Neighbour_Information_elm
1134 pLMN_Identity_t = 03 f9 30
1135 eUTRANcellIdentifier_t = 00 08 bc 50 (28 bits)
1139 ProtocolExtensionContainer_elm
1142 EARFCNExtension = 0x3
1144 packedPdu: "20060055000002001500080002f82900007a8000140042004000630002f8290007ab50102002f82900000100013300024002f8290007ab50006300010000004c400201024003f9300008bc50006400020000005e0003800103",
1145 /*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),*/ },
1148 converter := NewX2SetupResponseConverter(logger)
1150 for _, tc := range testCases {
1151 t.Run(tc.packedPdu, func(t *testing.T) {
1154 _, err := fmt.Sscanf(tc.packedPdu, "%x", &payload)
1156 t.Errorf("convert inputPayloadAsStr to payloadAsByte. Error: %v\n", err)
1159 key, enb, err := converter.UnpackX2SetupResponseAndExtract(payload)
1162 if tc.failure == nil {
1163 t.Errorf("want: success, got: error: %v\n", err)
1165 if strings.Compare(err.Error(), tc.failure.Error()) != 0 {
1166 t.Errorf("want: %s, got: %s", tc.failure, err)
1172 if tc.failure == nil {
1173 t.Errorf("want: key=%v, got: empty key", tc.key)
1176 if strings.Compare(key.PlmnId, tc.key.PlmnId) != 0 || strings.Compare(key.NbId, tc.key.NbId) != 0 {
1177 t.Errorf("want: key=%s, got: %s", tc.key, key)
1182 if tc.failure == nil {
1183 t.Errorf("want: enb=%s, got: empty enb", tc.enb)
1186 nb := &entities.NodebInfo{}
1187 nb.ConnectionStatus = entities.ConnectionStatus_CONNECTED
1188 nb.Configuration = &entities.NodebInfo_Enb{Enb: enb}
1189 embStr := fmt.Sprintf("%s %s %s %s", nb.ConnectionStatus, enb.EnbType, enb.ServedCells, enb.GuGroupIds)
1190 if !strings.EqualFold(embStr, tc.enb) {
1191 t.Errorf("want: enb=%s, got: %s", tc.enb, embStr)