Update Rmr Version and Dockerfile
[ric-plt/e2mgr.git] / E2Manager / models / e2_setup_request_message.go
1 package models
2
3 import (
4         "encoding/xml"
5         "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
6 )
7
8 type E2SetupRequestMessage struct {
9         XMLName xml.Name `xml:"E2SetupRequestMessage"`
10         Text    string   `xml:",chardata"`
11         E2APPDU struct {
12                 Text              string `xml:",chardata"`
13                 InitiatingMessage struct {
14                         Text          string `xml:",chardata"`
15                         ProcedureCode string `xml:"procedureCode"`
16                         Criticality   struct {
17                                 Text   string `xml:",chardata"`
18                                 Reject string `xml:"reject"`
19                         } `xml:"criticality"`
20                         Value struct {
21                                 Text           string `xml:",chardata"`
22                                 E2setupRequest struct {
23                                         Text        string `xml:",chardata"`
24                                         ProtocolIEs struct {
25                                                 Text              string `xml:",chardata"`
26                                                 E2setupRequestIEs []struct {
27                                                         Text        string `xml:",chardata"`
28                                                         ID          string `xml:"id"`
29                                                         Criticality struct {
30                                                                 Text   string `xml:",chardata"`
31                                                                 Reject string `xml:"reject"`
32                                                         } `xml:"criticality"`
33                                                         Value struct {
34                                                                 Text           string `xml:",chardata"`
35                                                                 GlobalE2nodeID struct {
36                                                                         Text string `xml:",chardata"`
37                                                                         GNB  struct {
38                                                                                 Text        string `xml:",chardata"`
39                                                                                 GlobalGNBID struct {
40                                                                                         Text   string `xml:",chardata"`
41                                                                                         PlmnID string `xml:"plmn-id"`
42                                                                                         GnbID  struct {
43                                                                                                 Text  string `xml:",chardata"`
44                                                                                                 GnbID string `xml:"gnb-ID"`
45                                                                                         } `xml:"gnb-id"`
46                                                                                 } `xml:"global-gNB-ID"`
47                                                                         } `xml:"gNB"`
48                                                                         EnGNB struct {
49                                                                                 Text        string `xml:",chardata"`
50                                                                                 GlobalGNBID struct {
51                                                                                         Text   string `xml:",chardata"`
52                                                                                         PlmnID string `xml:"plmn-id"`
53                                                                                         GnbID  struct {
54                                                                                                 Text  string `xml:",chardata"`
55                                                                                                 GnbID string `xml:"gnb-ID"`
56                                                                                         } `xml:"gnb-id"`
57                                                                                 } `xml:"global-gNB-ID"`
58                                                                         } `xml:"en-gNB"`
59                                                                         NgENB struct {
60                                                                                 Text          string `xml:",chardata"`
61                                                                                 GlobalNgENBID struct {
62                                                                                         Text   string `xml:",chardata"`
63                                                                                         PlmnID string `xml:"plmn-id"`
64                                                                                         GnbID  struct {
65                                                                                                 Text  string `xml:",chardata"`
66                                                                                                 GnbID string `xml:"gnb-ID"`
67                                                                                         } `xml:"gnb-id"`
68                                                                                 } `xml:"global-ng-eNB-ID"`
69                                                                         } `xml:"ng-eNB"`
70                                                                         ENB struct {
71                                                                                 Text        string `xml:",chardata"`
72                                                                                 GlobalENBID struct {
73                                                                                         Text   string `xml:",chardata"`
74                                                                                         PlmnID string `xml:"plmn-id"`
75                                                                                         GnbID  struct {
76                                                                                                 Text  string `xml:",chardata"`
77                                                                                                 GnbID string `xml:"gnb-ID"`
78                                                                                         } `xml:"gnb-id"`
79                                                                                 } `xml:"global-eNB-ID"`
80                                                                         } `xml:"eNB"`
81                                                                 } `xml:"GlobalE2node-ID"`
82                                                                 RANfunctionsList struct {
83                                                                         Text                      string `xml:",chardata"`
84                                                                         ProtocolIESingleContainer []struct {
85                                                                                 Text        string `xml:",chardata"`
86                                                                                 ID          string `xml:"id"`
87                                                                                 Criticality struct {
88                                                                                         Text   string `xml:",chardata"`
89                                                                                         Reject string `xml:"reject"`
90                                                                                 } `xml:"criticality"`
91                                                                                 Value struct {
92                                                                                         Text            string `xml:",chardata"`
93                                                                                         RANfunctionItem struct {
94                                                                                                 Text                  string `xml:",chardata"`
95                                                                                                 RanFunctionID         string `xml:"ranFunctionID"`
96                                                                                                 RanFunctionDefinition string `xml:"ranFunctionDefinition"`
97                                                                                                 RanFunctionRevision   string `xml:"ranFunctionRevision"`
98                                                                                         } `xml:"RANfunction-Item"`
99                                                                                 } `xml:"value"`
100                                                                         } `xml:"ProtocolIE-SingleContainer"`
101                                                                 } `xml:"RANfunctions-List"`
102                                                         } `xml:"value"`
103                                                 } `xml:"E2setupRequestIEs"`
104                                         } `xml:"protocolIEs"`
105                                 } `xml:"E2setupRequest"`
106                         } `xml:"value"`
107                 } `xml:"initiatingMessage"`
108         } `xml:"E2AP-PDU"`
109 }
110
111 func (m *E2SetupRequestMessage) GetNodeType() entities.Node_Type{
112         if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.GNB.GlobalGNBID.PlmnID; id!= ""{
113                 return entities.Node_GNB
114         }
115         if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.EnGNB.GlobalGNBID.PlmnID; id!= ""{
116                 return entities.Node_GNB
117         }
118         if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.ENB.GlobalENBID.PlmnID; id!= ""{
119                 return entities.Node_ENB
120         }
121         if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.NgENB.GlobalNgENBID.PlmnID; id!= ""{
122                 return entities.Node_GNB
123         }
124         return entities.Node_UNKNOWN
125 }
126
127 func (m *E2SetupRequestMessage) GetPlmnId() string{
128         if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.GNB.GlobalGNBID.PlmnID; id!= ""{
129                 return id
130         }
131         if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.EnGNB.GlobalGNBID.PlmnID; id!= ""{
132                 return id
133         }
134         if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.ENB.GlobalENBID.PlmnID; id!= ""{
135                 return id
136         }
137         if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.NgENB.GlobalNgENBID.PlmnID; id!= ""{
138                 return id
139         }
140         return ""
141 }
142
143 func (m *E2SetupRequestMessage) GetNbId() string{
144         if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.GNB.GlobalGNBID.GnbID.GnbID; id!= ""{
145                 return id
146         }
147         if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.EnGNB.GlobalGNBID.GnbID.GnbID; id!= ""{
148                 return id
149         }
150         if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.ENB.GlobalENBID.GnbID.GnbID; id!= ""{
151                 return id
152         }
153         if id := m.E2APPDU.InitiatingMessage.Value.E2setupRequest.ProtocolIEs.E2setupRequestIEs[0].Value.GlobalE2nodeID.NgENB.GlobalNgENBID.GnbID.GnbID; id!= ""{
154                 return id
155         }
156         return ""
157 }