2 // Copyright 2022 Samsung Electronics Co.
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://www.apache.org/licenses/LICENSE-2.0
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
16 // This source code is part of the near-RT RIC (RAN Intelligent Controller)
17 // platform project (RICP).
25 type E2ResetResponseMessage struct {
26 XMLName xml.Name `xml:"E2ResetSuccessResponseMessage"`
27 Text string `xml:",chardata"`
28 E2ApPdu E2ApPdu `xml:"E2AP-PDU"`
32 XMLName xml.Name `xml:"E2AP-PDU"`
33 Text string `xml:",chardata"`
34 SuccessfulOutcome successfulOutcome `xml:"successfulOutcome"`
37 type successfulOutcome struct {
38 XMLName xml.Name `xml:"successfulOutcome"`
39 Text string `xml:",chardata"`
40 ProcedureCode string `xml:"procedureCode"`
42 Text string `xml:",chardata"`
43 Reject string `xml:"reject"`
45 Value SuccessfulOutcomeValue `xml:"value"`
48 type Criticality struct {
49 Ignore string `xml:"ignore"`
52 type SuccessfulOutcomeValue struct {
53 Text string `xml:",chardata"`
54 ResetResponse ResetResponse `xml:"ResetResponse"`
57 type ResetResponse struct {
58 Text string `xml:",chardata"`
59 ProtocolIEs ProtocolIEs `xml:"protocolIEs"`
62 type ProtocolIEs struct {
63 Text string `xml:",chardata"`
64 ResetResponseIEs []ResetResponseIEs `xml:"ResetResponseIEs"`
67 type ResetResponseIEs struct {
68 Text string `xml:",chardata"`
70 Criticality Criticality `xml:"criticality"`
71 Value ResetResponseIEsValue `xml:"value"`
74 type ResetResponseIEsValue struct {
75 TransactionID string `xml:"TransactionID"`
78 func NewE2ResetResponseMessage(request *E2ResetRequestMessage) E2ResetResponseMessage {
79 outcome := successfulOutcome{}
80 outcome.ProcedureCode = string(request.E2ApPDU.InitiatingMessage.ProcedureCode)
81 e2ResetRequestIes := request.E2ApPDU.InitiatingMessage.Value.E2ResetRequest.ProtocolIes.ResetRequestIEs
82 numOfIes := len(e2ResetRequestIes)
84 outcome.Value.ResetResponse.ProtocolIEs.ResetResponseIEs = make([]ResetResponseIEs, numOfIes)
85 for ieCount := 0; ieCount < numOfIes; ieCount++ {
86 outcome.Value.ResetResponse.ProtocolIEs.ResetResponseIEs[ieCount].ID = string(request.E2ApPDU.InitiatingMessage.Value.E2ResetRequest.ProtocolIes.ResetRequestIEs[ieCount].ID)
87 outcome.Value.ResetResponse.ProtocolIEs.ResetResponseIEs[ieCount].Criticality.Ignore = request.E2ApPDU.InitiatingMessage.Value.E2ResetRequest.ProtocolIes.ResetRequestIEs[ieCount].Criticality.Ignore
88 outcome.Value.ResetResponse.ProtocolIEs.ResetResponseIEs[ieCount].Value.TransactionID = string(*(request.E2ApPDU.InitiatingMessage.Value.E2ResetRequest.ProtocolIes.ResetRequestIEs[ieCount].Value.TransactionID))
90 return E2ResetResponseMessage{E2ApPdu: E2ApPdu{SuccessfulOutcome: outcome}}