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"`
28 E2APPDU E2APPDU`xml:"E2AP-PDU"`
32 Text string `xml:",chardata"`
33 SuccessfulOutcome struct {
34 Text string `xml:",chardata"`
35 ProcedureCode string `xml:"procedureCode"`
37 Text string `xml:",chardata"`
38 Reject string `xml:"reject"`
41 Text string `xml:",chardata"`
42 E2setupResponse struct {
43 Text string `xml:",chardata"`
45 Text string `xml:",chardata"`
46 E2setupResponseIEs []E2setupResponseIEs`xml:"E2setupResponseIEs"`
48 } `xml:"E2setupResponse"`
50 } `xml:"successfulOutcome"`
53 type E2setupResponseIEs struct {
54 Text string `xml:",chardata"`
57 Text string `xml:",chardata"`
58 Reject string `xml:"reject"`
61 Text string `xml:",chardata"`
63 Text string `xml:",chardata"`
64 PLMNIdentity string `xml:"pLMN-Identity"`
65 RicID string `xml:"ric-ID"`
66 } `xml:"GlobalRIC-ID"`
67 RANfunctionsIDList struct {
68 Text string `xml:",chardata"`
69 ProtocolIESingleContainer []ProtocolIESingleContainer `xml:"ProtocolIE-SingleContainer"`
70 } `xml:"RANfunctionsID-List"`
74 type ProtocolIESingleContainer struct {
75 Text string `xml:",chardata"`
78 Text string `xml:",chardata"`
79 Ignore string `xml:"ignore"`
82 Text string `xml:",chardata"`
83 RANfunctionIDItem struct {
84 Text string `xml:",chardata"`
85 RanFunctionID string `xml:"ranFunctionID"`
86 RanFunctionRevision string `xml:"ranFunctionRevision"`
87 } `xml:"RANfunctionID-Item"`
91 func NewE2SetupSuccessResponseMessage() E2SetupSuccessResponseMessage{
92 msg := E2SetupSuccessResponseMessage{}
93 msg.E2APPDU.SuccessfulOutcome.Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs = make([]E2setupResponseIEs, 2)
97 func (m *E2SetupSuccessResponseMessage) SetExtractRanFunctionsIDList(request *E2SetupRequestMessage) {
98 list := &request.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[1].Value.RANfunctionsList
99 ids := make([]ProtocolIESingleContainer,len(list.ProtocolIESingleContainer))
100 for i := 0; i< len(ids); i++{
101 ids[i] = m.convertToRANfunctionID(list, i)
103 m.E2APPDU.SuccessfulOutcome.Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs[1].Value.RANfunctionsIDList.ProtocolIESingleContainer = ids
106 func (m *E2SetupSuccessResponseMessage) convertToRANfunctionID(list *RANfunctionsList, i int) ProtocolIESingleContainer{
107 id := ProtocolIESingleContainer{}
108 id.Value.RANfunctionIDItem.RanFunctionID = list.ProtocolIESingleContainer[i].Value.RANfunctionItem.RanFunctionID
109 id.Value.RANfunctionIDItem.RanFunctionRevision = list.ProtocolIESingleContainer[i].Value.RANfunctionItem.RanFunctionRevision
113 func (m *E2SetupSuccessResponseMessage) SetPlmnId(plmnId string){
114 m.E2APPDU.SuccessfulOutcome.Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs[0].Value.GlobalRICID.PLMNIdentity = plmnId
117 func (m *E2SetupSuccessResponseMessage) SetRicId(ricId string){
118 m.E2APPDU.SuccessfulOutcome.Value.E2setupResponse.ProtocolIEs.E2setupResponseIEs[0].Value.GlobalRICID.RicID = ricId