X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fmodels%2Fe2_setup_request_message.go;h=420d5fd8acf6dae165be563f69e718dfeab299a1;hb=d2f1a29d3f1cc779045148a82729f644e6110776;hp=435ad7c791c3673f33ab9f8556b13acc8d563376;hpb=04ff63f1708020673dd9be975476e0f76f179a81;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/models/e2_setup_request_message.go b/E2Manager/models/e2_setup_request_message.go index 435ad7c..420d5fd 100644 --- a/E2Manager/models/e2_setup_request_message.go +++ b/E2Manager/models/e2_setup_request_message.go @@ -216,31 +216,38 @@ type E2NodeIFTypeNG struct { } type E2NodeIFTypeXN struct { - XMLName xml.Name `xml:"e2nodeComponentInterfaceTypeXn"` - Text string `xml:",chardata"` - GlobalNgENBID struct { - Text string `xml:",chardata"` - GNB struct { - Text string `xml:",chardata"` - PLMNID string `xml:"plmn-id"` - GnbID struct { - Text string `xml:",chardata"` - GnbID string `xml:"gnb-ID"` - } `xml:"gnb-id"` - } `xml:"gNB"` - NGENB struct { - Text string `xml:",chardata"` - PLMNID string `xml:"plmn-id"` - GnbID struct { - Text string `xml:",chardata"` - ENBIDMacro string `xml:"enb-ID-macro"` - ENBIDShortMacro string `xml:"enb-ID-shortmacro"` - ENBIDLongMacro string `xml:"enb-ID-longmacro"` - } `xml:"gnb-id"` - } `xml:"ng-eNB"` + XMLName xml.Name `xml:"e2nodeComponentInterfaceTypeXn"` + Text string `xml:",chardata"` + GlobalNGRANNodeID struct { + Text string `xml:",chardata"` + GlobalgNBID *GNB `xml:"gNB,omitempty"` + GlobalngeNBID *NgeNBID `xml:"ng-eNB,omitempty"` } `xml:"global-NG-RAN-Node-ID"` } +type GNB struct { + Text string `xml:",chardata"` + PLMNID string `xml:"plmn-id"` + GnbID GnbID `xml:"gnb-id"` +} +type GnbID struct { + Text string `xml:",chardata"` + GnbID string `xml:"gnb-ID"` +} + +type NgeNBID struct { + Text string `xml:",chardata"` + PLMNID string `xml:"plmn-id"` + EnbID *EnbID_Xn `xml:"enb-id"` +} + +type EnbID_Xn struct { + Text string `xml:",chardata"` + EnbIdMacro string `xml:"enb-ID-macro,omitempty"` + EnbIdShortMacro string `xml:"enb-ID-shortmacro,omitempty"` + EnbIdLongMacro string `xml:"enb-ID-longmacro,omitempty"` +} + type E2NodeIFTypeE1 struct { XMLName xml.Name `xml:"e2nodeComponentInterfaceTypeE1"` Text string `xml:",chardata"` @@ -264,29 +271,33 @@ type E2NodeIFTypeS1 struct { Text string `xml:",chardata"` MMENAME string `xml:"mme-name"` } - type E2NodeIFTypeX2 struct { - XMLName xml.Name `xml:"e2nodeComponentInterfaceTypeX2"` - Text string `xml:",chardata"` - GlobalENBID struct { - Text string `xml:",chardata"` - PLMNIdentity string `xml:"pLMN-Identity"` - ENBID struct { - Text string `xml:",chardata"` - MacroENBID string `xml:"macro-eNB-ID"` - HomeENBID string `xml:"home-eNB-ID"` - ShortMacroENBID string `xml:"short-Macro-eNB-ID"` - LongMacroENBID string `xml:"long-Macro-eNB-ID"` - } `xml:"eNB-ID"` - } `xml:"global-eNB-ID"` - GlobalEnGNBID struct { - Text string `xml:",chardata"` - PLMNIdentity string `xml:"pLMN-Identity"` - GNBID struct { - Text string `xml:",chardata"` - GNBID string `xml:"gNB-ID"` - } `xml:"gNB-ID"` - } `xml:"global-en-gNB-ID"` + XMLName xml.Name `xml:"e2nodeComponentInterfaceTypeX2"` + Text string `xml:",chardata"` + GlobalENBID *GlobalENBID `xml:"global-eNB-ID,omitempty"` + GlobalenGNBID *GlobalenGNBID `xml:"global-en-gNB-ID,omitempty"` +} +type GlobalENBID struct { + Text string `xml:",chardata"` + PLMNIdentity string `xml:"pLMN-Identity"` + ENBID *ENBID_X2 `xml:"eNB-ID"` +} +type ENBID_X2 struct { + Text string `xml:",chardata"` + MacroEnbId string `xml:"macro-eNB-ID,omitempty"` + HomeEnbId string `xml:"home-eNB-ID,omitempty"` + ShortMacroEnbId string `xml:"short-Macro-eNB-ID,omitempty"` + LongMacroEnbId string `xml:"long-Macro-eNB-ID,omitempty"` +} +type GlobalenGNBID struct { + Text string `xml:",chardata"` + PLMNIdentity string `xml:"pLMN-Identity"` + GNBID GNBID `xml:"gNB-ID"` +} + +type GNBID struct { + Text string `xml:",chardata"` + GNBID string `xml:"gNB-ID"` } func (m *E2SetupRequestMessage) ExtractRanFunctionsList() []*entities.RanFunction { @@ -401,46 +412,163 @@ func (m *E2SetupRequestMessage) ExtractE2NodeConfigList() []*entities.E2NodeComp }, }, } - } - /*else if e2NodeConfigItem.E2nodeComponentType.XN != nil { - funcs[i] = &entities.E2NodeComponentConfig{ - E2NodeComponentInterfaceType: entities.E2NodeComponentInterfaceType_xn, - E2NodeComponentRequestPart: e2NodeConfigItem.E2nodeConfiguration.E2NodeRequestPart, - E2NodeComponentResponsePart: e2NodeConfigItem.E2nodeConfiguration.E2NodeResponsePart, - E2NodeComponentID: &entities.E2NodeComponentConfig_E2NodeComponentInterfaceTypeNG{ - E2NodeComponentInterfaceTypeXn: &entities.E2NodeComponentInterfaceXn{ - GlobalNgRanNodeId: &entities.E2NodeComponentInterfaceXn_GlobalNgenbId{ - GlobalNgenbId:&entities.GlobalNGENBID{ - PlmnIdentity: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNgENBID.NGENB.PLMNID, - EnbId: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNgENBID.GNB.GnbID.GnbID, + } else if e2NodeConfigItem.E2nodeComponentType.XN != nil { + if gnbid := e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNGRANNodeID.GlobalgNBID; gnbid != nil { + e2nodeComponentConfigs[i] = &entities.E2NodeComponentConfig{ + E2NodeComponentInterfaceType: entities.E2NodeComponentInterfaceType_xn, + E2NodeComponentRequestPart: e2NodeConfigItem.E2nodeConfiguration.E2NodeRequestPart, + E2NodeComponentResponsePart: e2NodeConfigItem.E2nodeConfiguration.E2NodeResponsePart, + E2NodeComponentID: &entities.E2NodeComponentConfig_E2NodeComponentInterfaceTypeXn{ + E2NodeComponentInterfaceTypeXn: &entities.E2NodeComponentInterfaceXn{ + GlobalNgRanNodeId: &entities.E2NodeComponentInterfaceXn_GlobalGnbId{ + GlobalGnbId: &entities.GlobalGNBID{ + PlmnIdentity: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNGRANNodeID.GlobalgNBID.PLMNID, + GnbId: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNGRANNodeID.GlobalgNBID.GnbID.GnbID, + GnbType: 1, + }, }, }, - GlobalNgRanNodeId: &entities.E2NodeComponentInterfaceXn_GlobalGnbId{ - GlobalGnbId:&entities.GlobalGNBID{ - PlmnIdentity: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNgENBID.NGENB.PLMNID, - EnbId: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNgENBID.GNB.GnbID.GnbID, + }, + } + + } else if ngenb := e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNGRANNodeID.GlobalngeNBID; ngenb != nil { + if ngenbid := e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNGRANNodeID.GlobalngeNBID.EnbID.EnbIdMacro; ngenbid != "" && len(ngenbid) == 20 { + e2nodeComponentConfigs[i] = &entities.E2NodeComponentConfig{ + E2NodeComponentInterfaceType: entities.E2NodeComponentInterfaceType_xn, + E2NodeComponentRequestPart: e2NodeConfigItem.E2nodeConfiguration.E2NodeRequestPart, + E2NodeComponentResponsePart: e2NodeConfigItem.E2nodeConfiguration.E2NodeResponsePart, + E2NodeComponentID: &entities.E2NodeComponentConfig_E2NodeComponentInterfaceTypeXn{ + E2NodeComponentInterfaceTypeXn: &entities.E2NodeComponentInterfaceXn{ + GlobalNgRanNodeId: &entities.E2NodeComponentInterfaceXn_GlobalNgenbId{ + GlobalNgenbId: &entities.GlobalNGENBID{ + PlmnIdentity: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNGRANNodeID.GlobalngeNBID.PLMNID, + EnbId: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNGRANNodeID.GlobalngeNBID.EnbID.EnbIdMacro, + EnbType: 1, + }, + }, + }, + }, + } + } else if ngenbid := e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNGRANNodeID.GlobalngeNBID.EnbID.EnbIdShortMacro; ngenbid != "" && len(ngenbid) == 18 { + e2nodeComponentConfigs[i] = &entities.E2NodeComponentConfig{ + E2NodeComponentInterfaceType: entities.E2NodeComponentInterfaceType_xn, + E2NodeComponentRequestPart: e2NodeConfigItem.E2nodeConfiguration.E2NodeRequestPart, + E2NodeComponentResponsePart: e2NodeConfigItem.E2nodeConfiguration.E2NodeResponsePart, + E2NodeComponentID: &entities.E2NodeComponentConfig_E2NodeComponentInterfaceTypeXn{ + E2NodeComponentInterfaceTypeXn: &entities.E2NodeComponentInterfaceXn{ + GlobalNgRanNodeId: &entities.E2NodeComponentInterfaceXn_GlobalNgenbId{ + GlobalNgenbId: &entities.GlobalNGENBID{ + PlmnIdentity: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNGRANNodeID.GlobalngeNBID.PLMNID, + EnbId: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNGRANNodeID.GlobalngeNBID.EnbID.EnbIdShortMacro, + EnbType: 3, + }, + }, + }, + }, + } + } else if ngenbid := e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNGRANNodeID.GlobalngeNBID.EnbID.EnbIdLongMacro; ngenbid != "" && len(ngenbid) == 21 { + e2nodeComponentConfigs[i] = &entities.E2NodeComponentConfig{ + E2NodeComponentInterfaceType: entities.E2NodeComponentInterfaceType_xn, + E2NodeComponentRequestPart: e2NodeConfigItem.E2nodeConfiguration.E2NodeRequestPart, + E2NodeComponentResponsePart: e2NodeConfigItem.E2nodeConfiguration.E2NodeResponsePart, + E2NodeComponentID: &entities.E2NodeComponentConfig_E2NodeComponentInterfaceTypeXn{ + E2NodeComponentInterfaceTypeXn: &entities.E2NodeComponentInterfaceXn{ + GlobalNgRanNodeId: &entities.E2NodeComponentInterfaceXn_GlobalNgenbId{ + GlobalNgenbId: &entities.GlobalNGENBID{ + PlmnIdentity: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNGRANNodeID.GlobalngeNBID.PLMNID, + EnbId: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNGRANNodeID.GlobalngeNBID.EnbID.EnbIdLongMacro, + EnbType: 4, + }, + }, + }, + }, + } + } + } else { + //not valid + } + } else if e2NodeConfigItem.E2nodeComponentType.X2 != nil { + if gnbid := e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalenGNBID; gnbid != nil { + e2nodeComponentConfigs[i] = &entities.E2NodeComponentConfig{ + E2NodeComponentInterfaceType: entities.E2NodeComponentInterfaceType_x2, + E2NodeComponentRequestPart: e2NodeConfigItem.E2nodeConfiguration.E2NodeRequestPart, + E2NodeComponentResponsePart: e2NodeConfigItem.E2nodeConfiguration.E2NodeResponsePart, + E2NodeComponentID: &entities.E2NodeComponentConfig_E2NodeComponentInterfaceTypeX2{ + E2NodeComponentInterfaceTypeX2: &entities.E2NodeComponentInterfaceX2{ + GlobalEngnbId: &entities.GlobalENGNBID{ + PlmnIdentity: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalenGNBID.PLMNIdentity, + GnbId: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalenGNBID.GNBID.GNBID, + GnbType: 1, }, }, }, - }, + } + } else if enb := e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalENBID; enb != nil { + if enbid := e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalENBID.ENBID.MacroEnbId; enbid != "" && len(enbid) == 20 { + e2nodeComponentConfigs[i] = &entities.E2NodeComponentConfig{ + E2NodeComponentInterfaceType: entities.E2NodeComponentInterfaceType_x2, + E2NodeComponentRequestPart: e2NodeConfigItem.E2nodeConfiguration.E2NodeRequestPart, + E2NodeComponentResponsePart: e2NodeConfigItem.E2nodeConfiguration.E2NodeResponsePart, + E2NodeComponentID: &entities.E2NodeComponentConfig_E2NodeComponentInterfaceTypeX2{ + E2NodeComponentInterfaceTypeX2: &entities.E2NodeComponentInterfaceX2{ + GlobalEnbId: &entities.GlobalENBID{ + PlmnIdentity: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalENBID.PLMNIdentity, + EnbId: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalENBID.ENBID.MacroEnbId, + EnbType: 1, + }, + }, + }, + } + } else if enbid := e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalENBID.ENBID.HomeEnbId; enbid != "" && len(enbid) == 28 { + e2nodeComponentConfigs[i] = &entities.E2NodeComponentConfig{ + E2NodeComponentInterfaceType: entities.E2NodeComponentInterfaceType_x2, + E2NodeComponentRequestPart: e2NodeConfigItem.E2nodeConfiguration.E2NodeRequestPart, + E2NodeComponentResponsePart: e2NodeConfigItem.E2nodeConfiguration.E2NodeResponsePart, + E2NodeComponentID: &entities.E2NodeComponentConfig_E2NodeComponentInterfaceTypeX2{ + E2NodeComponentInterfaceTypeX2: &entities.E2NodeComponentInterfaceX2{ + GlobalEnbId: &entities.GlobalENBID{ + PlmnIdentity: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalENBID.PLMNIdentity, + EnbId: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalENBID.ENBID.HomeEnbId, + EnbType: 2, + }, + }, + }, + } + } else if enbid := e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalENBID.ENBID.ShortMacroEnbId; enbid != "" && len(enbid) == 18 { + e2nodeComponentConfigs[i] = &entities.E2NodeComponentConfig{ + E2NodeComponentInterfaceType: entities.E2NodeComponentInterfaceType_x2, + E2NodeComponentRequestPart: e2NodeConfigItem.E2nodeConfiguration.E2NodeRequestPart, + E2NodeComponentResponsePart: e2NodeConfigItem.E2nodeConfiguration.E2NodeResponsePart, + E2NodeComponentID: &entities.E2NodeComponentConfig_E2NodeComponentInterfaceTypeX2{ + E2NodeComponentInterfaceTypeX2: &entities.E2NodeComponentInterfaceX2{ + GlobalEnbId: &entities.GlobalENBID{ + PlmnIdentity: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalENBID.PLMNIdentity, + EnbId: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalENBID.ENBID.ShortMacroEnbId, + EnbType: 3, + }, + }, + }, + } + } else if enbid := e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalENBID.ENBID.LongMacroEnbId; enbid != "" && len(enbid) == 21 { + e2nodeComponentConfigs[i] = &entities.E2NodeComponentConfig{ + E2NodeComponentInterfaceType: entities.E2NodeComponentInterfaceType_x2, + E2NodeComponentRequestPart: e2NodeConfigItem.E2nodeConfiguration.E2NodeRequestPart, + E2NodeComponentResponsePart: e2NodeConfigItem.E2nodeConfiguration.E2NodeResponsePart, + E2NodeComponentID: &entities.E2NodeComponentConfig_E2NodeComponentInterfaceTypeX2{ + E2NodeComponentInterfaceTypeX2: &entities.E2NodeComponentInterfaceX2{ + GlobalEnbId: &entities.GlobalENBID{ + PlmnIdentity: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalENBID.PLMNIdentity, + EnbId: e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalENBID.ENBID.LongMacroEnbId, + EnbType: 4, + }, + }, + }, + } + } + } else { + //not valid } - ifXn.GlobalNgENBID.NGENB.PLMNID = e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNgENBID.NGENB.PLMNID - ifXn.GlobalNgENBID.NGENB.GnbID.ENBIDMacro = e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNgENBID.NGENB.GnbID.ENBIDMacro - ifXn.GlobalNgENBID.NGENB.GnbID.ENBIDShortMacro = e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNgENBID.NGENB.GnbID.ENBIDShortMacro - ifXn.GlobalNgENBID.NGENB.GnbID.ENBIDLongMacro = e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeXN.GlobalNgENBID.NGENB.GnbID.ENBIDLongMacro - - }*/ - /*else if e2NodeConfigItem.E2nodeComponentType.X2 != nil { - ifX2 := E2NodeIFTypeX2 {} - ifX2.GlobalENBID.PLMNIdentity = e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalENBID.PLMNIdentity - ifX2.GlobalENBID.ENBID.MacroENBID = e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalENBID.ENBID.MacroENBID - ifX2.GlobalENBID.ENBID.HomeENBID = e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalENBID.ENBID.HomeENBID - ifX2.GlobalENBID.ENBID.ShortMacroENBID = e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalENBID.ENBID.ShortMacroENBID - ifX2.GlobalENBID.ENBID.LongMacroENBID = e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalENBID.ENBID.LongMacroENBID - - ifX2.GlobalEnGNBID.PLMNIdentity = e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalEnGNBID.PLMNIdentity - ifX2.GlobalEnGNBID.GNBID.GNBID = e2NodeConfigItem.E2nodeComponentID.E2NodeIFTypeX2.GlobalEnGNBID.GNBID.GNBID - }*/ + } //end of x2 } return e2nodeComponentConfigs }