host=gerrit.o-ran-sc.org
port=29418
project=ric-plt/e2mgr
-defaultbranch=master
+defaultbranch=PI5
${headers}= Create Dictionary Accept=application/json
${resp}= Get Request getE2tInstances /v1/e2t/list headers=${headers}
Should Be Equal As Strings ${resp.status_code} 200
- Should Be Equal As Strings ${resp.content} [{"e2tAddress":"e2t.att.com:38000","ranNames":["test1","test2","test3"]},{"e2tAddress":"e2t.att.com:38001","ranNames":[]}]
+ Should Be Equal As Strings ${resp.content} [{"e2tAddress":"e2t.att.com:38000","ranNames":["test1","test2","test3"]}]
${flush} cleanup_db.flush
def populate_e2t_instances_in_e2m_db_for_get_e2t_instances_tc():
r = getRedisClientDecodeResponse()
- r.set("{e2Manager},E2TAddresses", "[\"e2t.att.com:38000\",\"e2t.att.com:38001\"]")
+ r.set("{e2Manager},E2TAddresses", "[\"e2t.att.com:38000\"]")
r.set("{e2Manager},E2TInstance:e2t.att.com:38000", "{\"address\":\"e2t.att.com:38000\",\"associatedRanList\":[\"test1\",\"test2\",\"test3\"],\"keepAliveTimestamp\":1577619310484022369,\"state\":\"ACTIVE\"}")
- r.set("{e2Manager},E2TInstance:e2t.att.com:38001", "{\"address\":\"e2t.att.com:38001\",\"associatedRanList\":[],\"keepAliveTimestamp\":1577619310484022369,\"state\":\"ACTIVE\"}")
return True
# def dissociate_ran_from_e2tInstance(ranName, e2tAddress):
# The Jenkins job requires a tag to build the Docker image.
# Global-JJB script assumes this file is in the repo root.
---
-tag: 4.4.10
+tag: 5.0.1
"e2mgr/logger"
"fmt"
"gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
+ "regexp"
"strings"
"testing"
)
failure error
}{
{
- response: "CONNECTED_SETUP_FAILED network_layer_cause:HANDOVER_DESIRABLE_FOR_RADIO_REASONS time_to_wait:V1S criticality_diagnostics:<procedure_code:33 triggering_message:UNSUCCESSFUL_OUTCOME procedure_criticality:NOTIFY information_element_criticality_diagnostics:<ie_criticality:REJECT ie_id:128 type_of_error:MISSING > > ",
+ response: "CONNECTED_SETUP_FAILED network_layer_cause:HANDOVER_DESIRABLE_FOR_RADIO_REASONS time_to_wait:V1S criticality_diagnostics:{procedure_code:33 triggering_message:UNSUCCESSFUL_OUTCOME procedure_criticality:NOTIFY information_element_criticality_diagnostics:{ie_criticality:REJECT ie_id:128 type_of_error:MISSING}}",
/*
E2AP-PDU:
unsuccessfulOutcome_t
nb.SetupFailure = response
nb.FailureType = entities.Failure_X2_SETUP_FAILURE
respStr := fmt.Sprintf("%s %s", nb.ConnectionStatus, response)
- if !strings.EqualFold(respStr, tc.response) {
- t.Errorf("want: response=[%s], got: [%s]", tc.response, respStr)
- }
+ space := regexp.MustCompile(`\s+`)
+ s1 := space.ReplaceAllString(respStr, " ")
+ s2 := space.ReplaceAllString(tc.response," ")
+
+ if !strings.EqualFold(s1, s2) {
+ t.Errorf("want: [%s], got: [%s]", tc.response, respStr)
+ }
}
})
}
"e2mgr/logger"
"fmt"
"gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
+ "regexp"
"strings"
"testing"
)
}{
{
key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "4a952a0a"},
- gnb: "CONNECTED [served_nr_cell_information:<nr_pci:5 cell_id:\"1e3f27:1f2e3d4ff0\" stac5g:\"3d44d3\" configured_stac:\"4e4f\" served_plmns:\"3e4e5e\" nr_mode:TDD choice_nr_mode:<tdd:<nr_freq_info:<nr_ar_fcn:1 sulInformation:<sul_ar_fcn:2 sul_transmission_bandwidth:<nrscs:SCS60 ncnrb:NRB107 > > frequency_bands:<nr_frequency_band:22 supported_sul_bands:11 > > transmission_bandwidth:<nrscs:SCS30 ncnrb:NRB133 > > > > served_nr_cell_information:<nr_pci:5 cell_id:\"1e3f27:1f2e3d4ff0\" stac5g:\"3d44d3\" configured_stac:\"4e4f\" served_plmns:\"3e4e5e\" nr_mode:TDD choice_nr_mode:<tdd:<nr_freq_info:<nr_ar_fcn:1 sulInformation:<sul_ar_fcn:2 sul_transmission_bandwidth:<nrscs:SCS120 ncnrb:NRB121 > > frequency_bands:<nr_frequency_band:22 supported_sul_bands:11 > > transmission_bandwidth:<nrscs:SCS15 ncnrb:NRB132 > > > > nr_neighbour_infos:<nr_pci:44 nr_cgi:\"1e3f27:1f2e3d4ff0\" nr_mode:TDD choice_nr_mode:<tdd:<ar_fcn_nr_freq_info:<nr_ar_fcn:1 sulInformation:<sul_ar_fcn:2 sul_transmission_bandwidth:<nrscs:SCS15 ncnrb:NRB11 > > frequency_bands:<nr_frequency_band:22 supported_sul_bands:11 > > > > > ]",
+ gnb: "CONNECTED [served_nr_cell_information:{nr_pci:5 cell_id:\"1e3f27:1f2e3d4ff0\" stac5g:\"3d44d3\" configured_stac:\"4e4f\" served_plmns:\"3e4e5e\" nr_mode:TDD choice_nr_mode:{tdd:{nr_freq_info:{nr_ar_fcn:1 sulInformation:{sul_ar_fcn:2 sul_transmission_bandwidth:{nrscs:SCS60 ncnrb:NRB107}} frequency_bands:{nr_frequency_band:22 supported_sul_bands:11}} transmission_bandwidth:{nrscs:SCS30 ncnrb:NRB133}}}} served_nr_cell_information:{nr_pci:5 cell_id:\"1e3f27:1f2e3d4ff0\" stac5g:\"3d44d3\" configured_stac:\"4e4f\" served_plmns:\"3e4e5e\" nr_mode:TDD choice_nr_mode:{tdd:{nr_freq_info:{nr_ar_fcn:1 sulInformation:{sul_ar_fcn:2 sul_transmission_bandwidth:{nrscs:SCS120 ncnrb:NRB121}} frequency_bands:{nr_frequency_band:22 supported_sul_bands:11}} transmission_bandwidth:{nrscs:SCS15 ncnrb:NRB132}}}} nr_neighbour_infos:{nr_pci:44 nr_cgi:\"1e3f27:1f2e3d4ff0\" nr_mode:TDD choice_nr_mode:{tdd:{ar_fcn_nr_freq_info:{nr_ar_fcn:1 sulInformation:{sul_ar_fcn:2 sul_transmission_bandwidth:{nrscs:SCS15 ncnrb:NRB11}} frequency_bands:{nr_frequency_band:22 supported_sul_bands:11}}}}}]",
/*
E2AP-PDU:
successfulOutcome_t
packedPdu: "202400808e00000100f600808640000200fc00090002f829504a952a0a00fd007200010c0005001e3f271f2e3d4ff03d44d34e4f003e4e5e4400010000150400000a000211e148033e4e5e4c0005001e3f271f2e3d4ff03d44d34e4f003e4e5e4400010000150400000a00021a0044033e4e5e000000002c001e3f271f2e3d4ff0031e3f274400010000150400000a00020000"},
{
key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "4a952a0a"},
- gnb: "CONNECTED [served_nr_cell_information:<nr_pci:5 cell_id:\"1e3f27:1f2e3d4ff0\" stac5g:\"3d44d3\" configured_stac:\"4e4f\" served_plmns:\"3e4e5e\" nr_mode:TDD choice_nr_mode:<tdd:<nr_freq_info:<nr_ar_fcn:1 sulInformation:<sul_ar_fcn:2 sul_transmission_bandwidth:<nrscs:SCS30 ncnrb:NRB107 > > frequency_bands:<nr_frequency_band:22 supported_sul_bands:11 > > transmission_bandwidth:<nrscs:SCS15 ncnrb:NRB121 > > > > nr_neighbour_infos:<nr_pci:44 nr_cgi:\"1e3f27:1f2e3d4ff0\" nr_mode:TDD choice_nr_mode:<tdd:<ar_fcn_nr_freq_info:<nr_ar_fcn:5 sulInformation:<sul_ar_fcn:6 sul_transmission_bandwidth:<nrscs:SCS120 ncnrb:NRB18 > > frequency_bands:<nr_frequency_band:22 supported_sul_bands:11 > > > > > ]",
+ gnb: "CONNECTED [served_nr_cell_information:{nr_pci:5 cell_id:\"1e3f27:1f2e3d4ff0\" stac5g:\"3d44d3\" configured_stac:\"4e4f\" served_plmns:\"3e4e5e\" nr_mode:TDD choice_nr_mode:{tdd:{nr_freq_info:{nr_ar_fcn:1 sulInformation:{sul_ar_fcn:2 sul_transmission_bandwidth:{nrscs:SCS30 ncnrb:NRB107}} frequency_bands:{nr_frequency_band:22 supported_sul_bands:11}} transmission_bandwidth:{nrscs:SCS15 ncnrb:NRB121}}}} nr_neighbour_infos:{nr_pci:44 nr_cgi:\"1e3f27:1f2e3d4ff0\" nr_mode:TDD choice_nr_mode:{tdd:{ar_fcn_nr_freq_info:{nr_ar_fcn:5 sulInformation:{sul_ar_fcn:6 sul_transmission_bandwidth:{nrscs:SCS120 ncnrb:NRB18}} frequency_bands:{nr_frequency_band:22 supported_sul_bands:11}}}}}]",
/*
E2AP-PDU:
successfulOutcome_t
{
key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "4a952a0a"},
- gnb: "CONNECTED [served_nr_cell_information:<nr_pci:5 cell_id:\"1e3f27:1f2e3d4ff0\" stac5g:\"3d44d3\" configured_stac:\"4e4f\" served_plmns:\"3e4e5e\" nr_mode:TDD choice_nr_mode:<tdd:<nr_freq_info:<nr_ar_fcn:1 sulInformation:<sul_ar_fcn:2 sul_transmission_bandwidth:<nrscs:SCS60 ncnrb:NRB107 > > frequency_bands:<nr_frequency_band:22 supported_sul_bands:11 > > transmission_bandwidth:<nrscs:SCS30 ncnrb:NRB133 > > > > served_nr_cell_information:<nr_pci:8 cell_id:\"2e3f45:1f2e3d4ff0\" stac5g:\"4faa3c\" configured_stac:\"1a2f\" served_plmns:\"50321e\" nr_mode:TDD choice_nr_mode:<tdd:<nr_freq_info:<nr_ar_fcn:4 sulInformation:<sul_ar_fcn:8 sul_transmission_bandwidth:<nrscs:SCS120 ncnrb:NRB121 > > frequency_bands:<nr_frequency_band:7 supported_sul_bands:3 > > transmission_bandwidth:<nrscs:SCS15 ncnrb:NRB132 > > > > nr_neighbour_infos:<nr_pci:44 nr_cgi:\"1e3f27:1f2e3d4ff0\" nr_mode:TDD choice_nr_mode:<tdd:<ar_fcn_nr_freq_info:<nr_ar_fcn:1 sulInformation:<sul_ar_fcn:2 sul_transmission_bandwidth:<nrscs:SCS15 ncnrb:NRB11 > > frequency_bands:<nr_frequency_band:22 supported_sul_bands:11 > > > > > ]",
+ gnb: "CONNECTED [served_nr_cell_information:{nr_pci:5 cell_id:\"1e3f27:1f2e3d4ff0\" stac5g:\"3d44d3\" configured_stac:\"4e4f\" served_plmns:\"3e4e5e\" nr_mode:TDD choice_nr_mode:{tdd:{nr_freq_info:{nr_ar_fcn:1 sulInformation:{sul_ar_fcn:2 sul_transmission_bandwidth:{nrscs:SCS60 ncnrb:NRB107}} frequency_bands:{nr_frequency_band:22 supported_sul_bands:11}} transmission_bandwidth:{nrscs:SCS30 ncnrb:NRB133}}}} served_nr_cell_information:{nr_pci:8 cell_id:\"2e3f45:1f2e3d4ff0\" stac5g:\"4faa3c\" configured_stac:\"1a2f\" served_plmns:\"50321e\" nr_mode:TDD choice_nr_mode:{tdd:{nr_freq_info:{nr_ar_fcn:4 sulInformation:{sul_ar_fcn:8 sul_transmission_bandwidth:{nrscs:SCS120 ncnrb:NRB121}} frequency_bands:{nr_frequency_band:7 supported_sul_bands:3}} transmission_bandwidth:{nrscs:SCS15 ncnrb:NRB132}}}} nr_neighbour_infos:{nr_pci:44 nr_cgi:\"1e3f27:1f2e3d4ff0\" nr_mode:TDD choice_nr_mode:{tdd:{ar_fcn_nr_freq_info:{nr_ar_fcn:1 sulInformation:{sul_ar_fcn:2 sul_transmission_bandwidth:{nrscs:SCS15 ncnrb:NRB11}} frequency_bands:{nr_frequency_band:22 supported_sul_bands:11}}}}}]",
/*
E2AP-PDU:
successfulOutcome_t
{
key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "4a952a0a"},
- gnb: "CONNECTED [served_nr_cell_information:<nr_pci:5 cell_id:\"1e3f27:1f2e3d4ff0\" served_plmns:\"3e4e5e\" nr_mode:FDD choice_nr_mode:<fdd:<ul_freq_info:<nr_ar_fcn:5 frequency_bands:<nr_frequency_band:44 supported_sul_bands:33 > > dl_freq_info:<nr_ar_fcn:1 frequency_bands:<nr_frequency_band:22 supported_sul_bands:11 > > ul_transmission_bandwidth:<nrscs:SCS120 ncnrb:NRB11 > dl_transmission_bandwidth:<nrscs:SCS15 ncnrb:NRB135 > > > > nr_neighbour_infos:<nr_pci:44 nr_cgi:\"1e3f27:1f2e3d4ff0\" nr_mode:FDD choice_nr_mode:<fdd:<ular_fcn_freq_info:<nr_ar_fcn:5 frequency_bands:<nr_frequency_band:22 supported_sul_bands:11 > > dlar_fcn_freq_info:<nr_ar_fcn:1 frequency_bands:<nr_frequency_band:22 supported_sul_bands:11 > > > > > ]",
+ gnb: "CONNECTED [served_nr_cell_information:{nr_pci:5 cell_id:\"1e3f27:1f2e3d4ff0\" served_plmns:\"3e4e5e\" nr_mode:FDD choice_nr_mode:{fdd:{ul_freq_info:{nr_ar_fcn:5 frequency_bands:{nr_frequency_band:44 supported_sul_bands:33}} dl_freq_info:{nr_ar_fcn:1 frequency_bands:{nr_frequency_band:22 supported_sul_bands:11}} ul_transmission_bandwidth:{nrscs:SCS120 ncnrb:NRB11} dl_transmission_bandwidth:{nrscs:SCS15 ncnrb:NRB135}}}} nr_neighbour_infos:{nr_pci:44 nr_cgi:\"1e3f27:1f2e3d4ff0\" nr_mode:FDD choice_nr_mode:{fdd:{ular_fcn_freq_info:{nr_ar_fcn:5 frequency_bands:{nr_frequency_band:22 supported_sul_bands:11}} dlar_fcn_freq_info:{nr_ar_fcn:1 frequency_bands:{nr_frequency_band:22 supported_sul_bands:11}}}}}]",
/*
E2AP-PDU:
successfulOutcome_t
{
key: &entities.GlobalNbId{PlmnId: "04a5c1", NbId: "4fc52bff"},
- gnb: "CONNECTED [served_nr_cell_information:<nr_pci:9 cell_id:\"aeafa7:2a3e3b4cd0\" stac5g:\"7d4773\" configured_stac:\"477f\" served_plmns:\"7e7e7e\" nr_mode:TDD choice_nr_mode:<tdd:<nr_freq_info:<nr_ar_fcn:8 sulInformation:<sul_ar_fcn:9 sul_transmission_bandwidth:<nrscs:SCS15 ncnrb:NRB121 > > frequency_bands:<nr_frequency_band:22 supported_sul_bands:11 > > transmission_bandwidth:<nrscs:SCS60 ncnrb:NRB18 > > > > nr_neighbour_infos:<nr_pci:44 nr_cgi:\"5a5ff1:2a3e3b4cd0\" nr_mode:TDD choice_nr_mode:<tdd:<ar_fcn_nr_freq_info:<nr_ar_fcn:5 sulInformation:<sul_ar_fcn:6 sul_transmission_bandwidth:<nrscs:SCS30 ncnrb:NRB18 > > frequency_bands:<nr_frequency_band:4 supported_sul_bands:3 > > > > > nr_neighbour_infos:<nr_pci:9 nr_cgi:\"5d5caa:af3e354ac0\" nr_mode:TDD choice_nr_mode:<tdd:<ar_fcn_nr_freq_info:<nr_ar_fcn:7 sulInformation:<sul_ar_fcn:8 sul_transmission_bandwidth:<nrscs:SCS120 ncnrb:NRB25 > > frequency_bands:<nr_frequency_band:3 supported_sul_bands:1 > > > > > ]",
+ gnb: "CONNECTED [served_nr_cell_information:{nr_pci:9 cell_id:\"aeafa7:2a3e3b4cd0\" stac5g:\"7d4773\" configured_stac:\"477f\" served_plmns:\"7e7e7e\" nr_mode:TDD choice_nr_mode:{tdd:{nr_freq_info:{nr_ar_fcn:8 sulInformation:{sul_ar_fcn:9 sul_transmission_bandwidth:{nrscs:SCS15 ncnrb:NRB121}} frequency_bands:{nr_frequency_band:22 supported_sul_bands:11}} transmission_bandwidth:{nrscs:SCS60 ncnrb:NRB18}}}} nr_neighbour_infos:{nr_pci:44 nr_cgi:\"5a5ff1:2a3e3b4cd0\" nr_mode:TDD choice_nr_mode:{tdd:{ar_fcn_nr_freq_info:{nr_ar_fcn:5 sulInformation:{sul_ar_fcn:6 sul_transmission_bandwidth:{nrscs:SCS30 ncnrb:NRB18}} frequency_bands:{nr_frequency_band:4 supported_sul_bands:3}}}}} nr_neighbour_infos:{nr_pci:9 nr_cgi:\"5d5caa:af3e354ac0\" nr_mode:TDD choice_nr_mode:{tdd:{ar_fcn_nr_freq_info:{nr_ar_fcn:7 sulInformation:{sul_ar_fcn:8 sul_transmission_bandwidth:{nrscs:SCS120 ncnrb:NRB25}} frequency_bands:{nr_frequency_band:3 supported_sul_bands:1}}}}}]",
/*
E2AP-PDU:
successfulOutcome_t
nb.ConnectionStatus = entities.ConnectionStatus_CONNECTED
nb.Configuration = &entities.NodebInfo_Gnb{Gnb: gnb}
gnbStr := fmt.Sprintf("%s %s", nb.ConnectionStatus, gnb.ServedNrCells)
- if !strings.EqualFold(gnbStr, tc.gnb) {
- t.Errorf("want: enb=%s, got: %s", tc.gnb, gnbStr)
+
+ space := regexp.MustCompile(`\s+`)
+ s1 := space.ReplaceAllString(gnbStr, " ")
+ s2 := space.ReplaceAllString(tc.gnb," ")
+
+ if !strings.EqualFold(s1, s2) {
+ t.Errorf("want: [%s], got: [%s]", tc.gnb, gnbStr)
}
}
"e2mgr/logger"
"fmt"
"gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
+ "regexp"
"strings"
"testing"
)
failure error
}{
{
- response: "CONNECTED_SETUP_FAILED network_layer_cause:HANDOVER_DESIRABLE_FOR_RADIO_REASONS time_to_wait:V1S criticality_diagnostics:<procedure_code:33 triggering_message:UNSUCCESSFUL_OUTCOME procedure_criticality:NOTIFY information_element_criticality_diagnostics:<ie_criticality:REJECT ie_id:128 type_of_error:MISSING > > ",
+ response: "CONNECTED_SETUP_FAILED network_layer_cause:HANDOVER_DESIRABLE_FOR_RADIO_REASONS time_to_wait:V1S criticality_diagnostics:{procedure_code:33 triggering_message:UNSUCCESSFUL_OUTCOME procedure_criticality:NOTIFY information_element_criticality_diagnostics:{ie_criticality:REJECT ie_id:128 type_of_error:MISSING}}",
/*
E2AP-PDU:
unsuccessfulOutcome_t
*/
packedPdu: "4006001a0000030005400200000016400100001140087821a00000008040"},
{
- response: "CONNECTED_SETUP_FAILED transport_layer_cause:TRANSPORT_RESOURCE_UNAVAILABLE criticality_diagnostics:<procedure_code:33 triggering_message:UNSUCCESSFUL_OUTCOME procedure_criticality:NOTIFY information_element_criticality_diagnostics:<ie_criticality:REJECT ie_id:128 type_of_error:MISSING > > ",
+ response: "CONNECTED_SETUP_FAILED transport_layer_cause:TRANSPORT_RESOURCE_UNAVAILABLE criticality_diagnostics:{procedure_code:33 triggering_message:UNSUCCESSFUL_OUTCOME procedure_criticality:NOTIFY information_element_criticality_diagnostics:{ie_criticality:REJECT ie_id:128 type_of_error:MISSING}}",
/*
E2AP-PDU:
unsuccessfulOutcome_t
*/
packedPdu: "400600140000020005400120001140087821a00000008040"},
{
- response: "CONNECTED_SETUP_FAILED protocol_cause:ABSTRACT_SYNTAX_ERROR_IGNORE_AND_NOTIFY criticality_diagnostics:<triggering_message:UNSUCCESSFUL_OUTCOME procedure_criticality:NOTIFY information_element_criticality_diagnostics:<ie_criticality:REJECT ie_id:128 type_of_error:MISSING > > ",
+ response: "CONNECTED_SETUP_FAILED protocol_cause:ABSTRACT_SYNTAX_ERROR_IGNORE_AND_NOTIFY criticality_diagnostics:{triggering_message:UNSUCCESSFUL_OUTCOME procedure_criticality:NOTIFY information_element_criticality_diagnostics:{ie_criticality:REJECT ie_id:128 type_of_error:MISSING}}",
/*
E2AP-PDU:
unsuccessfulOutcome_t
packedPdu: "400600130000020005400144001140073a800000008040"},
{
- response: "CONNECTED_SETUP_FAILED miscellaneous_cause:UNSPECIFIED criticality_diagnostics:<procedure_criticality:NOTIFY information_element_criticality_diagnostics:<ie_criticality:REJECT ie_id:128 type_of_error:MISSING > > ",
+ response: "CONNECTED_SETUP_FAILED miscellaneous_cause:UNSPECIFIED criticality_diagnostics:{procedure_criticality:NOTIFY information_element_criticality_diagnostics:{ie_criticality:REJECT ie_id:128 type_of_error:MISSING}}",
/*
E2AP-PDU:
unsuccessfulOutcome_t
packedPdu: "400600120000020005400168001140061a0000008040"},
{
- response: "CONNECTED_SETUP_FAILED miscellaneous_cause:UNSPECIFIED criticality_diagnostics:<information_element_criticality_diagnostics:<ie_criticality:REJECT ie_id:128 type_of_error:MISSING > information_element_criticality_diagnostics:<ie_criticality:NOTIFY ie_id:255 type_of_error:NOT_UNDERSTOOD > > ",
+ response: "CONNECTED_SETUP_FAILED miscellaneous_cause:UNSPECIFIED criticality_diagnostics:{information_element_criticality_diagnostics:{ie_criticality:REJECT ie_id:128 type_of_error:MISSING} information_element_criticality_diagnostics:{ie_criticality:NOTIFY ie_id:255 type_of_error:NOT_UNDERSTOOD}}",
/*
E2AP-PDU:
unsuccessfulOutcome_t
{
- response: "CONNECTED_SETUP_FAILED miscellaneous_cause:UNSPECIFIED criticality_diagnostics:<procedure_code:33 > ",
+ response: "CONNECTED_SETUP_FAILED miscellaneous_cause:UNSPECIFIED criticality_diagnostics:{procedure_code:33}",
/*
E2AP-PDU:
unsuccessfulOutcome_t
packedPdu: "4006000e0000020005400168001140024021"},
{
- response: "CONNECTED_SETUP_FAILED miscellaneous_cause:UNSPECIFIED ",
+ response: "CONNECTED_SETUP_FAILED miscellaneous_cause:UNSPECIFIED",
/*
E2AP-PDU:
unsuccessfulOutcome_t
*/
packedPdu: "400600080000010005400168"},
{
- response: "CONNECTED_SETUP_FAILED network_layer_cause:HANDOVER_DESIRABLE_FOR_RADIO_REASONS time_to_wait:V1S criticality_diagnostics:<procedure_code:33 triggering_message:UNSUCCESSFUL_OUTCOME procedure_criticality:NOTIFY information_element_criticality_diagnostics:<ie_criticality:REJECT ie_id:128 type_of_error:MISSING > > ",
+ response: "CONNECTED_SETUP_FAILED network_layer_cause:HANDOVER_DESIRABLE_FOR_RADIO_REASONS time_to_wait:V1S criticality_diagnostics:{procedure_code:33 triggering_message:UNSUCCESSFUL_OUTCOME procedure_criticality:NOTIFY information_element_criticality_diagnostics:{ie_criticality:REJECT ie_id:128 type_of_error:MISSING}}",
/*
E2AP-PDU:
unsuccessfulOutcome_t
nb.SetupFailure = response
nb.FailureType = entities.Failure_X2_SETUP_FAILURE
respStr := fmt.Sprintf("%s %s", nb.ConnectionStatus, response)
- if !strings.EqualFold(respStr, tc.response) {
- t.Errorf("want: response=[%s], got: [%s]", tc.response, respStr)
+
+ space := regexp.MustCompile(`\s+`)
+ s1 := space.ReplaceAllString(respStr, " ")
+ s2 := space.ReplaceAllString(tc.response," ")
+
+ if !strings.EqualFold(s1, s2) {
+ t.Errorf("want: [%s], got: [%s]", tc.response, respStr)
}
}
"e2mgr/logger"
"fmt"
"gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
+ "regexp"
"strings"
"testing"
)
}{
{
key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
- 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 ] []",
+ 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] []",
/*
X2AP-PDU:
successfulOutcome_t
packedPdu: "2006002a000002001500080002f82900007a8000140017000000630002f8290007ab50102002f829000001000133"},
{
key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
- 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 ] []",
+ 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] []",
/*
X2AP-PDU:
successfulOutcome_t
packedPdu: "20060043000002001500080002f82900007a8000140030010000630002f8290007ab50102002f8290000010001330000640002f9290007ac50203202f82902f929000002000344"},
{key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
- 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 ] []",
+ 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] []",
/*
X2AP-PDU:
successfulOutcome_t
*/
packedPdu: "20060033000002001500080002f82900007a8000140020000000630002f8290007ab50102002f8291000010001330000005f0003800102"},
{key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
- 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]",
+ 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]",
/*
X2AP-PDU:
successfulOutcome_t
packedPdu: "2006003a000003001500080002f82900007a8000140017000000630002f8290007ab50102002f8290000010001330018000c1002f72902030002f9290304"},
{key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
- 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 ] []",
+ 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] []",
/*
X2AP-PDU:
successfulOutcome_t
*/
packedPdu: "2006002a000002001500080002f82900007a8000140017000000630002f8290007ab50102002f829400001320820"},
{key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
- 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 ] []",
+ 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] []",
/*
X2AP-PDU:
successfulOutcome_t
packedPdu: "20060032000002001500080002f82900007a800014001f000000630002f8290007ab50102002f8295000013208800000006140021220"},
{key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
- 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 ] []",
+ 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] []",
/*
X2AP-PDU:
successfulOutcome_t
packedPdu: "20060033000002001500080002f82900007a8000140020000000630002f8290007ab50102002f8295000013208800000005e0003800102"},
{key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
- 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 ] []",
+ 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] []",
/*
X2AP-PDU:
successfulOutcome_t
packedPdu: "20060031000002001500080002f82900007a800014001e000000630002f8290007ab50102002f829500001320880000000b3400100"},
{key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
- 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 ] []",
+ 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] []",
/*
X2AP-PDU:
successfulOutcome_t
packedPdu: "2006003e000002001500080002f82900007a800014002b000000630002f8290007ab50102002f829500001320880000200b3400100006140021220005e0003800102"},
{key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80b0"},
- 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 ] []",
+ 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] []",
/*
X2AP-PDU:
successfulOutcome_t
packedPdu: "2006004b000002001500090002f82940007a80b000140037010800630002f8290007ab50102002f829000001000133000000294001000000640002f9290007ac50203202f82902f929000002000344"},
{key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a40"},
- 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 > ] []",
+ 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}] []",
/*
X2AP-PDU:
successfulOutcome_t
packedPdu: "20060056000002001500090002f8298003007a4000140042010800630002f8290007ab50102002f829000001000133000000294001000800640002f9290007ac50203202f82902f92900000200034400000037400500000f79e0"},
{key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a40"},
- 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 > ] []",
+ 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}] []",
/*
X2AP-PDU:
successfulOutcome_t
*/
packedPdu: "20060054000002001500090002f8298003007a4000140040010800630002f8290007ab50102002f829000001000133000000294001000800640002f9290007ac50203202f82902f929000002000344000000384003019850"},
{key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a40"},
- 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 ] []",
+ 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] []",
/*
X2AP-PDU:
successfulOutcome_t
*/
packedPdu: "20060052000002001500090002f8298003007a400014003e010800630002f8290007ab50102002f82900000100013300010029400100003840030198500000640002f9290007ac50203202f82902f929000002000344"},
{key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a40"},
- 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 ] []",
+ 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] []",
/*
X2AP-PDU:
successfulOutcome_t
*/
packedPdu: "20060054000002001500090002f8298003007a4000140040010800630002f8290007ab50102002f829000001000133000100294001000037400500000f79e00000640002f9290007ac50203202f82902f929000002000344"},
{key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a08"},
- 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 ] []",
+ 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] []",
/*
X2AP-PDU:
successfulOutcome_t
packedPdu: "20060050000002001500090002f829c003007a080014003c010800630002f8290007ab50102002f82900000100013300000037400640000f79ef000000640002f9290007ac50203202f82902f929000002000344"},
{key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
- 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 ] []",
+ 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] []",
/*
X2AP-PDU:
successfulOutcome_t
packedPdu: "2006003e000002001500080002f82900007a800014002b000800630002f8290007ab50102002f8290000010001330002004640040007aba000a040014000b4400100"},
{key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
- 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 ] []",
+ 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] []",
/*
X2AP-PDU:
successfulOutcome_t
*/
packedPdu: "20060044000002001500080002f82900007a8000140031000800630002f8290007ab50102002f8290000010001330002004f40050102f803f900a040010000544006200000010002"},
{key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
- 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 > ] []",
+ 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}] []",
/*
X2AP-PDU:
successfulOutcome_t
packedPdu: "20060044000002001500080002f82900007a8000140031004000630002f8290007ab50102002f82900000100013300020002f8290007ab50006300010003f9300008bc5000640002"},
{key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
- 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 > ] []",
+ 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}] []",
/*
X2AP-PDU:
successfulOutcome_t
packedPdu: "20060055000002001500080002f82900007a8000140042004000630002f8290007ab50102002f82900000100013300024002f8290007ab50006300010000004c400201024003f9300008bc50006400020000005e0003800103"},
{key: &entities.GlobalNbId{PlmnId: "02f829", NbId: "007a80"},
- 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 > ] []",
+ 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}] []",
/*
X2AP-PDU:
successfulOutcome_t
EARFCNExtension = 0x3
*/
packedPdu: "20060055000002001500080002f82900007a8000140042004000630002f8290007ab50102002f82900000100013300024002f8290007ab50006300010000004c400201024003f9300008bc50006400020000005e0003800103",
- /*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),*/ },
+ /*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),*/},
}
converter := NewX2SetupResponseConverter(logger)
nb.ConnectionStatus = entities.ConnectionStatus_CONNECTED
nb.Configuration = &entities.NodebInfo_Enb{Enb: enb}
embStr := fmt.Sprintf("%s %s %s %s", nb.ConnectionStatus, enb.EnbType, enb.ServedCells, enb.GuGroupIds)
- if !strings.EqualFold(embStr, tc.enb) {
+
+ space := regexp.MustCompile(`\s+`)
+ s1 := space.ReplaceAllString(embStr, " ")
+ s2 := space.ReplaceAllString(tc.enb," ")
+
+
+
+ if !strings.EqualFold(s1, s2) {
t.Errorf("want: enb=%s, got: %s", tc.enb, embStr)
}
}
module e2mgr
require (
- gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.35
- gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities v1.0.35
- gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader v1.0.35
+ gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.41
+ gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities v1.0.41
+ gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader v1.0.41
gerrit.o-ran-sc.org/r/ric-plt/sdlgo v0.5.2
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a // indirect
github.com/go-ozzo/ozzo-validation v3.5.0+incompatible
- github.com/golang/protobuf v1.3.4
+ github.com/golang/protobuf v1.4.2
github.com/gorilla/mux v1.7.0
github.com/magiconair/properties v1.8.1
github.com/pelletier/go-toml v1.5.0 // indirect
google.golang.org/appengine v1.6.1 // indirect
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
gopkg.in/yaml.v2 v2.2.8
- k8s.io/apimachinery v0.17.0
k8s.io/client-go v0.17.0
)
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
-gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.35 h1:TGXHb4DNY8on+ej4S9VUnk2HibIC/5chDy64OE+bQBQ=
-gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.35/go.mod h1:QJ1uPPZosGbhxUWpUpeM5fLqFHdnWTrVnvW2DgyOCes=
-gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities v1.0.35 h1:tkM3yE8UzmuH4nf9TqAmiNBSuIZ2CtcMRH2eBIYIzpQ=
-gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities v1.0.35/go.mod h1:G+4sUBMbLfQ+RrGS65U15tKmbnP+/1b5oLTPmMfyfT4=
-gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader v1.0.35 h1:LcxnUUDwsCzYEISKmkjkyYfg/lnLt8ofkPiGK69vNIA=
-gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader v1.0.35/go.mod h1:2bSaXTpECbZieB8bMnubTqMwF3n+mMBxlTaAXvcduNg=
+gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.41 h1:91VlUsqMooia8F1JvBXh8F8x3n0lj1xqCV0jmx4bm20=
+gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.41/go.mod h1:QJ1uPPZosGbhxUWpUpeM5fLqFHdnWTrVnvW2DgyOCes=
+gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities v1.0.41 h1:nq2GgOIc/53lldmOe0pe6qZSxLkOrCRSNWeKTCeijDo=
+gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities v1.0.41/go.mod h1:YaQ+XEI4PcAoISxp9wUpUr2TP0J7JihpQTD0G1Lpd4A=
+gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader v1.0.41 h1:hVl06Y+wwusyuCHgbsUI/BY63HUvkoZYS3iS0vm1XKc=
+gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader v1.0.41/go.mod h1:xu3UO+VN6JdiWDRxzGzdanTbH7hh7sanrWtTB7YtBBs=
gerrit.o-ran-sc.org/r/ric-plt/sdlgo.git v0.5.2 h1:UK7awyRKIkVdokWvvkYvazlg3EWIfMnIqCcJxTnLlDA=
gerrit.o-ran-sc.org/r/ric-plt/sdlgo.git v0.5.2/go.mod h1:y2WhrCvdLkAKdH+ySdHSOSehACJkTMyZghCGVcqoZzc=
github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=
github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.4 h1:87PNWwrRvUSnqS4dlcBU/ftvOIBep4sYuBLlh6rX2wk=
-github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
+github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
+github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
+github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
+github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
+github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
+github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
+github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.4.1 h1:/exdXoGamhu5ONeUJH0deniYLWYvQwW66yvlfiiKTu0=
+github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=
github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
+google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
+google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
+google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
+google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
+google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
+google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM=
+google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
return nil, "", errors.New(fmt.Sprintf("#E2SetupRequestNotificationHandler.parseSetupRequest - Error unmarshalling E2 Setup Request payload: %x", payload))
}
+ ranFunctionsList := setupRequest.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[1].Value.RANfunctionsList.ProtocolIESingleContainer
+
+ for i := 0; i < len(ranFunctionsList); i++ {
+ def := models.E2smGnbNrtRanFunctionDefinition{}
+ err = xml.Unmarshal([]byte(ranFunctionsList[i].Value.RANfunctionItem.RanFunctionDefinition.Text), &def)
+ ranFunctionsList[i].Value.RANfunctionItem.RanFunctionDefinition.E2smGnbNrtRanFunctionDefinition = def
+ }
+
return setupRequest, e2tIpAddress, nil
}
RanName: ranName,
NodeType: entities.Node_GNB,
Configuration: &entities.NodebInfo_Gnb{Gnb: &entities.Gnb{}},
- GlobalNbId: h.buildGlobalNbId(request),
+ GlobalNbId: h.buildGlobalNbId(request),
}
err = h.setGnbFunctions(nodebInfo, request)
func (h E2SetupRequestNotificationHandler) buildNbIdentity(ranName string, setupRequest *models.E2SetupRequestMessage) *entities.NbIdentity {
return &entities.NbIdentity{
InventoryName: ranName,
- GlobalNbId: h.buildGlobalNbId(setupRequest),
+ GlobalNbId: h.buildGlobalNbId(setupRequest),
}
}
import (
"encoding/xml"
- "errors"
- "fmt"
"gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
- "strconv"
+ "github.com/golang/protobuf/ptypes/wrappers"
"strings"
)
}
type RanFunctionItem struct {
- Text string `xml:",chardata"`
- RanFunctionID string `xml:"ranFunctionID"`
- RanFunctionDefinition string `xml:"ranFunctionDefinition"`
- RanFunctionRevision string `xml:"ranFunctionRevision"`
+ Text string `xml:",chardata"`
+ RanFunctionID uint32 `xml:"ranFunctionID"`
+ RanFunctionDefinition RanFunctionDefinition `xml:"ranFunctionDefinition"`
+ RanFunctionRevision uint32 `xml:"ranFunctionRevision"`
+}
+
+type RanFunctionDefinition struct {
+ Text string `xml:",chardata"`
+ E2smGnbNrtRanFunctionDefinition E2smGnbNrtRanFunctionDefinition `xml:"E2SM-gNB-NRT-RANfunction-Definition"`
+}
+
+type RanFunctionName struct {
+ Text string `xml:",chardata"`
+ RanFunctionShortName string `xml:"ranFunction-ShortName"`
+ RanFunctionE2smOid string `xml:"ranFunction-E2SM-OID"`
+ RanFunctionDescription string `xml:"ranFunction-Description"`
+ RanFunctionInstance *uint32 `xml:"ranFunction-Instance"`
+}
+
+type RicEventTriggerStyleList struct {
+ Text string `xml:",chardata"`
+ RicEventTriggerStyleType uint32 `xml:"ric-EventTriggerStyle-Type"`
+ RicEventTriggerStyleName string `xml:"ric-EventTriggerStyle-Name"`
+ RicEventTriggerFormatType uint32 `xml:"ric-EventTriggerFormat-Type"`
+}
+
+type RanParameterDefItem struct {
+ Text string `xml:",chardata"`
+ RanParameterID uint32 `xml:"ranParameter-ID"`
+ RanParameterName string `xml:"ranParameter-Name"`
+ RanParameterType RanParameterType `xml:"ranParameter-Type"`
+}
+
+type RanParameterType struct {
+ Text string `xml:",chardata"`
+ Boolean *struct{} `xml:"boolean,omitempty"`
+ Integer *struct{} `xml:"integer,omitempty"`
+ Enumerated *struct{} `xml:"enumerated,omitempty"`
+ BitString *struct{} `xml:"bit-string,omitempty"`
+ OctetString *struct{} `xml:"octet-string,omitempty"`
+ PrintableString *struct{} `xml:"printable-string,omitempty"`
+}
+
+type RicReportStyleList struct {
+ Text string `xml:",chardata"`
+ RicReportStyleType uint32 `xml:"ric-ReportStyle-Type"`
+ RicReportStyleName string `xml:"ric-ReportStyle-Name"`
+ RicReportActionFormatType uint32 `xml:"ric-ReportActionFormat-Type"`
+ RicReportRanParameterDefList struct {
+ Text string `xml:",chardata"`
+ RanParameterDefItem []RanParameterDefItem `xml:"RANparameterDef-Item"`
+ } `xml:"ric-ReportRanParameterDef-List"`
+ RicIndicationHeaderFormatType uint32 `xml:"ric-IndicationHeaderFormat-Type"`
+ RicIndicationMessageFormatType uint32 `xml:"ric-IndicationMessageFormat-Type"`
+}
+
+type RicInsertStyleList struct {
+ Text string `xml:",chardata"`
+ RicInsertStyleType uint32 `xml:"ric-InsertStyle-Type"`
+ RicInsertStyleName string `xml:"ric-InsertStyle-Name"`
+ RicInsertActionFormatType uint32 `xml:"ric-InsertActionFormat-Type"`
+ RicInsertRanParameterDefList struct {
+ Text string `xml:",chardata"`
+ RanParameterDefItem []RanParameterDefItem `xml:"RANparameterDef-Item"`
+ } `xml:"ric-InsertRanParameterDef-List"`
+ RicIndicationHeaderFormatType uint32 `xml:"ric-IndicationHeaderFormat-Type"`
+ RicIndicationMessageFormatType uint32 `xml:"ric-IndicationMessageFormat-Type"`
+ RicCallProcessIdFormatType uint32 `xml:"ric-CallProcessIDFormat-Type"`
+}
+
+type RicControlStyleList struct {
+ Text string `xml:",chardata"`
+ RicControlStyleType uint32 `xml:"ric-ControlStyle-Type"`
+ RicControlStyleName string `xml:"ric-ControlStyle-Name"`
+ RicControlHeaderFormatType uint32 `xml:"ric-ControlHeaderFormat-Type"`
+ RicControlMessageFormatType uint32 `xml:"ric-ControlMessageFormat-Type"`
+ RicCallProcessIdFormatType uint32 `xml:"ric-CallProcessIDFormat-Type"`
+}
+
+type RicPolicyStyleList struct {
+ Text string `xml:",chardata"`
+ RicPolicyStyleType uint32 `xml:"ric-PolicyStyle-Type"`
+ RicPolicyStyleName string `xml:"ric-PolicyStyle-Name"`
+ RicPolicyActionFormatType uint32 `xml:"ric-PolicyActionFormat-Type"`
+ RicPolicyRanParameterDefList struct {
+ Text string `xml:",chardata"`
+ RanParameterDefItem []RanParameterDefItem `xml:"RANparameterDef-Item"`
+ } `xml:"ric-PolicyRanParameterDef-List"`
+}
+
+type E2smGnbNrtRanFunctionDefinition struct {
+ Text string `xml:",chardata"`
+ RanFunctionName RanFunctionName `xml:"ranFunction-Name"`
+ RicEventTriggerStyleList struct {
+ Text string `xml:",chardata"`
+ RicEventTriggerStyleList []RicEventTriggerStyleList `xml:"RIC-EventTriggerStyle-List"`
+ } `xml:"ric-EventTriggerStyle-List"`
+ RicReportStyleList struct {
+ Text string `xml:",chardata"`
+ RicReportStyleList []RicReportStyleList `xml:"RIC-ReportStyle-List"`
+ } `xml:"ric-ReportStyle-List"`
+ RicInsertStyleList struct {
+ Text string `xml:",chardata"`
+ RicInsertStyleList []RicInsertStyleList `xml:"RIC-InsertStyle-List"`
+ } `xml:"ric-InsertStyle-List"`
+ RicControlStyleList struct {
+ Text string `xml:",chardata"`
+ RicControlStyleList []RicControlStyleList `xml:"RIC-ControlStyle-List"`
+ } `xml:"ric-ControlStyle-List"`
+ RicPolicyStyleList struct {
+ Text string `xml:",chardata"`
+ RicPolicyStyleList []RicPolicyStyleList `xml:"RIC-PolicyStyle-List"`
+ } `xml:"ric-PolicyStyle-List"`
}
type RANfunctionsList struct {
funcs := make([]*entities.RanFunction, len(list))
for i := 0; i < len(funcs); i++ {
funcs[i] = &entities.RanFunction{}
- id, err := strconv.ParseUint(list[i].Value.RANfunctionItem.RanFunctionID, 10, 32)
- if err != nil {
- return nil, errors.New(fmt.Sprintf("#e2_setup_request_message.ExtractRanFunctionsList - Failed parse uint RanFunctionID from %s", list[i].Value.RANfunctionItem.RanFunctionID))
- }
- funcs[i].RanFunctionId = uint32(id)
- rev, err := strconv.ParseUint(list[i].Value.RANfunctionItem.RanFunctionRevision, 10, 32)
- if err != nil {
- return nil, errors.New(fmt.Sprintf("#e2_setup_request_message.ExtractRanFunctionsList - Failed parse uint RanFunctionRevision from %s", list[i].Value.RANfunctionItem.RanFunctionRevision))
- }
- funcs[i].RanFunctionDefinition = m.trimSpaces(list[i].Value.RANfunctionItem.RanFunctionDefinition)
- funcs[i].RanFunctionRevision = uint32(rev)
+ funcs[i].RanFunctionId = &wrappers.UInt32Value{Value: list[i].Value.RANfunctionItem.RanFunctionID}
+ def, _ := m.buildRanFunctionDefinitionProto(&list[i].Value.RANfunctionItem.RanFunctionDefinition)
+ funcs[i].RanFunctionDefinition = def
+ funcs[i].RanFunctionRevision = &wrappers.UInt32Value{Value: list[i].Value.RANfunctionItem.RanFunctionRevision}
}
return funcs, nil
}
+func (m *E2SetupRequestMessage) buildRanFunctionDefinitionProto(def *RanFunctionDefinition) (*entities.RanFunctionDefinition, error) {
+ defProto := &entities.RanFunctionDefinition{
+ E2SmGnbNrtRanFunctionDefinition: &entities.E2SmGnbNrtRanFunctionDefinition{
+ RanFunctionName: buildRanFunctionNameProto(def),
+ RicEventTriggerStyles: buildRicEventTriggerStylesProto(def),
+ RicReportStyles: buildRicReportStylesProto(def),
+ RicInsertStyles: buildRicInsertStylesProto(def),
+ RicControlStyles: buildRicControlStylesProto(def),
+ RicPolicyStyles: buildRicPolicyStylesProto(def),
+ },
+ }
+
+ return defProto, nil
+}
+
+func buildRanFunctionNameProto(def *RanFunctionDefinition) *entities.RanFunctionName {
+ defRanFunctionName := def.E2smGnbNrtRanFunctionDefinition.RanFunctionName
+ ranFunctionName := &entities.RanFunctionName{
+ RanFunctionShortName: &wrappers.StringValue{Value: defRanFunctionName.RanFunctionShortName},
+ RanFunctionE2SmOid: &wrappers.StringValue{Value: defRanFunctionName.RanFunctionE2smOid},
+ RanFunctionDescription: &wrappers.StringValue{Value: defRanFunctionName.RanFunctionDescription},
+ }
+
+ if defRanFunctionName.RanFunctionInstance != nil {
+ ranFunctionName.OptionalRanFunctionInstance = &entities.RanFunctionName_RanFunctionInstance{
+ RanFunctionInstance: *defRanFunctionName.RanFunctionInstance,
+ }
+ }
+
+ return ranFunctionName
+}
+
+func buildRicEventTriggerStylesProto(def *RanFunctionDefinition) []*entities.RicEventTriggerStyle {
+ defRicEventTriggerStyleList := def.E2smGnbNrtRanFunctionDefinition.RicEventTriggerStyleList.RicEventTriggerStyleList
+ ricEventTriggerStyles := make([]*entities.RicEventTriggerStyle, len(defRicEventTriggerStyleList))
+
+ for i, v := range defRicEventTriggerStyleList {
+ ricEventTriggerStyles[i] = &entities.RicEventTriggerStyle{}
+ ricEventTriggerStyles[i].RicEventTriggerStyleType = &wrappers.UInt32Value{Value: v.RicEventTriggerStyleType}
+ ricEventTriggerStyles[i].RicEventTriggerStyleName = &wrappers.StringValue{Value: v.RicEventTriggerStyleName}
+ ricEventTriggerStyles[i].RicEventTriggerFormatType = &wrappers.UInt32Value{Value: v.RicEventTriggerFormatType}
+ }
+
+ return ricEventTriggerStyles
+}
+
+func buildRicReportStylesProto(def *RanFunctionDefinition) []*entities.RicReportStyle {
+ defRicReportStyleList := def.E2smGnbNrtRanFunctionDefinition.RicReportStyleList.RicReportStyleList
+ ricReportStyles := make([]*entities.RicReportStyle, len(defRicReportStyleList))
+
+ for i, v := range defRicReportStyleList {
+ ricReportStyles[i] = &entities.RicReportStyle{}
+ ricReportStyles[i].RicReportStyleType = &wrappers.UInt32Value{Value: v.RicReportStyleType}
+ ricReportStyles[i].RicReportStyleName = &wrappers.StringValue{Value: v.RicReportStyleName}
+ ricReportStyles[i].RicReportActionFormatType = &wrappers.UInt32Value{Value: v.RicReportActionFormatType}
+ ricReportStyles[i].RicReportRanParameterDefs = buildRicReportRanParameterDefsProto(v)
+ ricReportStyles[i].RicIndicationHeaderFormatType = &wrappers.UInt32Value{Value: v.RicIndicationHeaderFormatType}
+ ricReportStyles[i].RicIndicationMessageFormatType = &wrappers.UInt32Value{Value: v.RicIndicationMessageFormatType}
+ }
+
+ return ricReportStyles
+}
+
+func buildRicReportRanParameterDefsProto(ricReportStyleList RicReportStyleList) []*entities.RanParameterDef {
+ ricReportRanParameterDefList := ricReportStyleList.RicReportRanParameterDefList.RanParameterDefItem
+ ranParameterDefs := make([]*entities.RanParameterDef, len(ricReportRanParameterDefList))
+
+ for i, v := range ricReportRanParameterDefList {
+ ranParameterDefs[i] = &entities.RanParameterDef{}
+ ranParameterDefs[i].RanParameterId = &wrappers.UInt32Value{Value: v.RanParameterID}
+ ranParameterDefs[i].RanParameterName = &wrappers.StringValue{Value: v.RanParameterName}
+ ranParameterDefs[i].RanParameterType = getRanParameterTypeEnumValue(v.RanParameterType)
+ }
+
+ return ranParameterDefs
+}
+
+func getRanParameterTypeEnumValue(ranParameterType RanParameterType) entities.RanParameterType {
+ if ranParameterType.Boolean != nil {
+ return entities.RanParameterType_BOOLEAN
+ }
+
+ if ranParameterType.BitString != nil {
+ return entities.RanParameterType_BIT_STRING
+ }
+
+ if ranParameterType.Enumerated != nil {
+ return entities.RanParameterType_ENUMERATED
+ }
+
+ if ranParameterType.Integer != nil {
+ return entities.RanParameterType_INTEGER
+ }
+
+ if ranParameterType.OctetString != nil {
+ return entities.RanParameterType_OCTET_STRING
+ }
+
+ if ranParameterType.PrintableString != nil {
+ return entities.RanParameterType_PRINTABLE_STRING
+ }
+
+ return entities.RanParameterType_UNKNOWN_RAN_PARAMETER_TYPE
+}
+
+func buildRicInsertStylesProto(def *RanFunctionDefinition) []*entities.RicInsertStyle {
+ defRicInsertStyleList := def.E2smGnbNrtRanFunctionDefinition.RicInsertStyleList.RicInsertStyleList
+ ricInsertStyles := make([]*entities.RicInsertStyle, len(defRicInsertStyleList))
+
+ for i, v := range defRicInsertStyleList {
+ ricInsertStyles[i] = &entities.RicInsertStyle{}
+ ricInsertStyles[i].RicInsertStyleType = &wrappers.UInt32Value{Value: v.RicInsertStyleType}
+ ricInsertStyles[i].RicInsertStyleName = &wrappers.StringValue{Value: v.RicInsertStyleName}
+ ricInsertStyles[i].RicInsertActionFormatType = &wrappers.UInt32Value{Value: v.RicInsertActionFormatType}
+ ricInsertStyles[i].RicInsertRanParameterDefs = buildRicInsertRanParameterDefsProto(v)
+ ricInsertStyles[i].RicIndicationHeaderFormatType = &wrappers.UInt32Value{Value: v.RicIndicationHeaderFormatType}
+ ricInsertStyles[i].RicIndicationMessageFormatType = &wrappers.UInt32Value{Value: v.RicIndicationMessageFormatType}
+ ricInsertStyles[i].RicCallProcessIdFormatType = &wrappers.UInt32Value{Value: v.RicCallProcessIdFormatType}
+ }
+
+ return ricInsertStyles
+}
+
+func buildRicInsertRanParameterDefsProto(ricInsertStyleList RicInsertStyleList) []*entities.RanParameterDef {
+ ricInsertRanParameterDefList := ricInsertStyleList.RicInsertRanParameterDefList.RanParameterDefItem
+ ranParameterDefs := make([]*entities.RanParameterDef, len(ricInsertRanParameterDefList))
+
+ for i, v := range ricInsertRanParameterDefList {
+ ranParameterDefs[i] = &entities.RanParameterDef{}
+ ranParameterDefs[i].RanParameterId = &wrappers.UInt32Value{Value: v.RanParameterID}
+ ranParameterDefs[i].RanParameterName = &wrappers.StringValue{Value: v.RanParameterName}
+ ranParameterDefs[i].RanParameterType = getRanParameterTypeEnumValue(v.RanParameterType)
+ }
+
+ return ranParameterDefs
+}
+
+func buildRicControlStylesProto(def *RanFunctionDefinition) []*entities.RicControlStyle {
+ defRicControlStyleList := def.E2smGnbNrtRanFunctionDefinition.RicControlStyleList.RicControlStyleList
+ ricControlStyles := make([]*entities.RicControlStyle, len(defRicControlStyleList))
+
+ for i, v := range defRicControlStyleList {
+ ricControlStyles[i] = &entities.RicControlStyle{}
+ ricControlStyles[i].RicControlStyleType = &wrappers.UInt32Value{Value: v.RicControlStyleType}
+ ricControlStyles[i].RicControlStyleName = &wrappers.StringValue{Value: v.RicControlStyleName}
+ ricControlStyles[i].RicControlHeaderFormatType = &wrappers.UInt32Value{Value: v.RicControlHeaderFormatType}
+ ricControlStyles[i].RicControlMessageFormatType = &wrappers.UInt32Value{Value: v.RicControlMessageFormatType}
+ ricControlStyles[i].RicCallProcessIdFormatType = &wrappers.UInt32Value{Value: v.RicCallProcessIdFormatType}
+ }
+
+ return ricControlStyles
+}
+
+func buildRicPolicyRanParameterDefsProto(ricPolicyStyleList RicPolicyStyleList) []*entities.RanParameterDef {
+ ricPolicyRanParameterDefList := ricPolicyStyleList.RicPolicyRanParameterDefList.RanParameterDefItem
+ ranParameterDefs := make([]*entities.RanParameterDef, len(ricPolicyRanParameterDefList))
+
+ for i, v := range ricPolicyRanParameterDefList {
+ ranParameterDefs[i] = &entities.RanParameterDef{}
+ ranParameterDefs[i].RanParameterId = &wrappers.UInt32Value{Value: v.RanParameterID}
+ ranParameterDefs[i].RanParameterName = &wrappers.StringValue{Value: v.RanParameterName}
+ ranParameterDefs[i].RanParameterType = getRanParameterTypeEnumValue(v.RanParameterType)
+ }
+
+ return ranParameterDefs
+}
+
+func buildRicPolicyStylesProto(def *RanFunctionDefinition) []*entities.RicPolicyStyle {
+ defRicPolicyStyleList := def.E2smGnbNrtRanFunctionDefinition.RicPolicyStyleList.RicPolicyStyleList
+ ricPolicyStyles := make([]*entities.RicPolicyStyle, len(defRicPolicyStyleList))
+
+ for i, v := range defRicPolicyStyleList {
+ ricPolicyStyles[i] = &entities.RicPolicyStyle{}
+ ricPolicyStyles[i].RicPolicyStyleType = &wrappers.UInt32Value{Value: v.RicPolicyStyleType}
+ ricPolicyStyles[i].RicPolicyStyleName = &wrappers.StringValue{Value: v.RicPolicyStyleName}
+ ricPolicyStyles[i].RicPolicyActionFormatType = &wrappers.UInt32Value{Value: v.RicPolicyActionFormatType}
+ ricPolicyStyles[i].RicPolicyRanParameterDefs = buildRicPolicyRanParameterDefsProto(v)
+ }
+
+ return ricPolicyStyles
+}
+
func (m *E2SetupRequestMessage) getGlobalE2NodeId() GlobalE2NodeId {
return m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID
}
-//func (m *E2SetupRequestMessage) GetNodeType() entities.Node_Type {
-// globalE2NodeId := m.getGlobalE2NodeId()
-// if id := globalE2NodeId.GNB.GlobalGNBID.PlmnID; id != "" {
-// return entities.Node_GNB
-// }
-// if id := globalE2NodeId.EnGNB.GlobalGNBID.PlmnID; id != "" {
-// return entities.Node_GNB
-// }
-// if id := globalE2NodeId.ENB.GlobalENBID.PlmnID; id != "" {
-// return entities.Node_ENB
-// }
-// if id := globalE2NodeId.NgENB.GlobalNgENBID.PlmnID; id != "" {
-// return entities.Node_ENB
-// }
-// return entities.Node_UNKNOWN
-//}
-
func (m *E2SetupRequestMessage) GetPlmnId() string {
globalE2NodeId := m.getGlobalE2NodeId()
if id := globalE2NodeId.GNB.GlobalGNBID.PlmnID; id != "" {
Text string `xml:",chardata"`
RANfunctionIDItem struct {
Text string `xml:",chardata"`
- RanFunctionID string `xml:"ranFunctionID"`
- RanFunctionRevision string `xml:"ranFunctionRevision"`
+ RanFunctionID uint32 `xml:"ranFunctionID"`
+ RanFunctionRevision uint32 `xml:"ranFunctionRevision"`
} `xml:"RANfunctionID-Item"`
} `xml:"value"`
}
func TestSaveUnknownTypeEntityFailure(t *testing.T) {
w, _ := initSdlInstanceMock(namespace)
- expectedErr := common.NewValidationError("#rNibWriter.saveNodeB - Unknown responding node type, entity: ip:\"localhost\" port:5656 ")
+ expectedErr := common.NewValidationError("#rNibWriter.saveNodeB - Unknown responding node type, entity: ip:\"localhost\" port:5656")
nbIdentity := &entities.NbIdentity{InventoryName: "name", GlobalNbId: &entities.GlobalNbId{PlmnId: "02f829", NbId: "4a952a0a"}}
nb := &entities.NodebInfo{}
nb.Port = 5656