2 // Copyright 2019 AT&T Intellectual Property
3 // Copyright 2019 Nokia
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 // This source code is part of the near-RT RIC (RAN Intelligent Controller)
18 // platform project (RICP).
25 type E2SetupSuccessResponseMessage struct {
26 XMLName xml.Name `xml:"E2SetupSuccessResponseMessage"`
27 Text string `xml:",chardata"`
29 Text string `xml:",chardata"`
30 SuccessfulOutcome struct {
31 Text string `xml:",chardata"`
32 ProcedureCode string `xml:"procedureCode"`
34 Text string `xml:",chardata"`
35 Reject string `xml:"reject"`
38 Text string `xml:",chardata"`
39 E2setupResponse struct {
40 Text string `xml:",chardata"`
42 Text string `xml:",chardata"`
43 E2setupResponseIEs []E2setupResponseIEs`xml:"E2setupResponseIEs"`
45 } `xml:"E2setupResponse"`
47 } `xml:"successfulOutcome"`
51 type E2setupResponseIEs struct {
52 Text string `xml:",chardata"`
55 Text string `xml:",chardata"`
56 Reject string `xml:"reject"`
59 Text string `xml:",chardata"`
61 Text string `xml:",chardata"`
62 PLMNIdentity string `xml:"pLMN-Identity"`
63 RicID string `xml:"ric-ID"`
64 } `xml:"GlobalRIC-ID"`
65 RANfunctionsIDList struct {
66 Text string `xml:",chardata"`
67 ProtocolIESingleContainer []ProtocolIESingleContainer `xml:"ProtocolIE-SingleContainer"`
68 } `xml:"RANfunctionsID-List"`
72 type ProtocolIESingleContainer struct {
73 Text string `xml:",chardata"`
76 Text string `xml:",chardata"`
77 Ignore string `xml:"ignore"`
80 Text string `xml:",chardata"`
81 RANfunctionIDItem struct {
82 Text string `xml:",chardata"`
83 RanFunctionID string `xml:"ranFunctionID"`
84 RanFunctionRevision string `xml:"ranFunctionRevision"`
85 } `xml:"RANfunctionID-Item"`
89 func NewE2SetupSuccessResponseMessage() *E2SetupSuccessResponseMessage{
90 msg := &E2SetupSuccessResponseMessage{}
91 msg.E2APPDU.SuccessfulOutcome.Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs = make([]E2setupResponseIEs, 2)
95 func (m *E2SetupSuccessResponseMessage) SetExtractRanFunctionsIDList(request *E2SetupRequestMessage) {
96 list := &request.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[1].Value.RANfunctionsList
97 ids := make([]ProtocolIESingleContainer,len(list.ProtocolIESingleContainer))
98 for i := 0; i< len(ids); i++{
99 ids[i] = m.convertToRANfunctionID(list, i)
101 m.E2APPDU.SuccessfulOutcome.Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs[1].Value.RANfunctionsIDList.ProtocolIESingleContainer = ids
104 func (m *E2SetupSuccessResponseMessage) convertToRANfunctionID(list *RANfunctionsList, i int) ProtocolIESingleContainer{
105 id := ProtocolIESingleContainer{}
106 id.Value.RANfunctionIDItem.RanFunctionID = list.ProtocolIESingleContainer[i].Value.RANfunctionItem.RanFunctionID
107 id.Value.RANfunctionIDItem.RanFunctionRevision = list.ProtocolIESingleContainer[i].Value.RANfunctionItem.RanFunctionRevision
111 func (m *E2SetupSuccessResponseMessage) SetPlmnId(plmnId string){
112 m.E2APPDU.SuccessfulOutcome.Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs[0].Value.GlobalRICID.PLMNIdentity = plmnId
115 func (m *E2SetupSuccessResponseMessage) SetRicId(ricId string){
116 m.E2APPDU.SuccessfulOutcome.Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs[0].Value.GlobalRICID.RicID = ricId