2 ==================================================================================
3 Copyright (c) 2019 AT&T Intellectual Property.
4 Copyright (c) 2019 Nokia
6 Licensed under the Apache License, Version 2.0 (the "License");
7 you may not use this file except in compliance with the License.
8 You may obtain a copy of the License at
10 http://www.apache.org/licenses/LICENSE-2.0
12 Unless required by applicable law or agreed to in writing, software
13 distributed under the License is distributed on an "AS IS" BASIS,
14 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 See the License for the specific language governing permissions and
16 limitations under the License.
17 ==================================================================================
25 #cgo LDFLAGS: -le2ap_wrapper -le2ap
31 "gerrit.o-ran-sc.org/r/ric-plt/e2ap/pkg/e2ap"
32 "gerrit.o-ran-sc.org/r/ric-plt/e2ap/pkg/e2ap_wrapper"
33 "gerrit.o-ran-sc.org/r/ric-plt/e2ap/pkg/packer"
37 var packerif e2ap.E2APPackerIf = e2ap_wrapper.NewAsn1E2Packer()
42 /* RICsubscriptionRequest */
44 // Used by e2t test stub
45 func (c *E2ap) GetSubscriptionRequestSequenceNumber(payload []byte) (subId uint16, err error) {
46 cptr := unsafe.Pointer(&payload[0])
47 cret := C.e2ap_get_ric_subscription_request_sequence_number(cptr, C.size_t(len(payload)))
49 return 0, fmt.Errorf("e2ap wrapper is unable to get Subscirption Request Sequence Number due to wrong or invalid payload. Erroxappde: %v", cret)
55 // Used by submgr, xapp test stub
56 func (c *E2ap) SetSubscriptionRequestSequenceNumber(payload []byte, newSubscriptionid uint16) (err error) {
57 cptr := unsafe.Pointer(&payload[0])
58 size := C.e2ap_set_ric_subscription_request_sequence_number(cptr, C.size_t(len(payload)), C.long(newSubscriptionid))
60 return fmt.Errorf("e2ap wrapper is unable to set Subscription Request Sequence Number due to wrong or invalid payload. Erroxappde: %v", size)
65 // Used by submgr, xapp test stub
66 func (c *E2ap) GetSubscriptionResponseSequenceNumber(payload []byte) (subId uint16, err error) {
67 cptr := unsafe.Pointer(&payload[0])
68 cret := C.e2ap_get_ric_subscription_response_sequence_number(cptr, C.size_t(len(payload)))
70 return 0, fmt.Errorf("e2ap wrapper is unable to get Subscirption Response Sequence Number due to wrong or invalid payload. Erroxappde: %v", cret)
76 // Used by e2t test stub
77 func (c *E2ap) SetSubscriptionResponseSequenceNumber(payload []byte, newSubscriptionid uint16) (err error) {
78 cptr := unsafe.Pointer(&payload[0])
79 size := C.e2ap_set_ric_subscription_response_sequence_number(cptr, C.size_t(len(payload)), C.long(newSubscriptionid))
81 return fmt.Errorf("e2ap wrapper is unable to set Subscription Response Sequence Number due to wrong or invalid payload. Erroxappde: %v", size)
86 /* RICsubscriptionDeleteRequest */
88 // Used by submgr, e2t test stub
89 func (c *E2ap) GetSubscriptionDeleteRequestSequenceNumber(payload []byte) (subId uint16, err error) {
90 cptr := unsafe.Pointer(&payload[0])
91 cret := C.e2ap_get_ric_subscription_delete_request_sequence_number(cptr, C.size_t(len(payload)))
93 return 0, fmt.Errorf("e2ap wrapper is unable to get Subscirption Delete Request Sequence Number due to wrong or invalid payload. Erroxappde: %v", cret)
99 // Used by xapp test stub
100 func (c *E2ap) SetSubscriptionDeleteRequestSequenceNumber(payload []byte, newSubscriptionid uint16) (err error) {
101 cptr := unsafe.Pointer(&payload[0])
102 size := C.e2ap_set_ric_subscription_delete_request_sequence_number(cptr, C.size_t(len(payload)), C.long(newSubscriptionid))
104 return fmt.Errorf("e2ap wrapper is unable to set Subscription Delete Request Sequence Number due to wrong or invalid payload. Erroxappde: %v", size)
109 /* RICsubscriptionDeleteResponse */
111 // Used by submgr, e2t test stub
112 func (c *E2ap) GetSubscriptionDeleteResponseSequenceNumber(payload []byte) (subId uint16, err error) {
113 cptr := unsafe.Pointer(&payload[0])
114 cret := C.e2ap_get_ric_subscription_delete_response_sequence_number(cptr, C.size_t(len(payload)))
116 return 0, fmt.Errorf("e2ap wrapper is unable to get Subscirption Delete Response Sequence Number due to wrong or invalid payload. Erroxappde: %v", cret)
122 // Used by e2t test stub
123 func (c *E2ap) SetSubscriptionDeleteResponseSequenceNumber(payload []byte, newSubscriptionid uint16) (err error) {
124 cptr := unsafe.Pointer(&payload[0])
125 size := C.e2ap_set_ric_subscription_delete_response_sequence_number(cptr, C.size_t(len(payload)), C.long(newSubscriptionid))
127 return fmt.Errorf("e2ap wrapper is unable to set Subscription Delete Response Sequence Number due to wrong or invalid payload. Erroxappde: %v", size)
132 /* RICsubscriptionRequestFailure */
135 func (c *E2ap) GetSubscriptionFailureSequenceNumber(payload []byte) (subId uint16, err error) {
136 cptr := unsafe.Pointer(&payload[0])
137 cret := C.e2ap_get_ric_subscription_failure_sequence_number(cptr, C.size_t(len(payload)))
139 return 0, fmt.Errorf("e2ap wrapper is unable to get Subscirption Failure Sequence Number due to wrong or invalid payload. Erroxappde: %v", cret)
145 // Used by e2t test stub
146 func (c *E2ap) SetSubscriptionFailureSequenceNumber(payload []byte, newSubscriptionid uint16) (err error) {
147 cptr := unsafe.Pointer(&payload[0])
148 size := C.e2ap_set_ric_subscription_failure_sequence_number(cptr, C.size_t(len(payload)), C.long(newSubscriptionid))
150 return fmt.Errorf("e2ap wrapper is unable to set Subscription Failure Sequence Number due to wrong or invalid payload. Erroxappde: %v", size)
155 /* RICsubscriptionDeleteFailure */
158 func (c *E2ap) GetSubscriptionDeleteFailureSequenceNumber(payload []byte) (subId uint16, err error) {
159 cptr := unsafe.Pointer(&payload[0])
160 cret := C.e2ap_get_ric_subscription_delete_failure_sequence_number(cptr, C.size_t(len(payload)))
162 return 0, fmt.Errorf("e2ap wrapper is unable to get Subscirption Delete Failure Sequence Number due to wrong or invalid payload. Erroxappde: %v", cret)
169 func (c *E2ap) SetSubscriptionDeleteFailureSequenceNumber(payload []byte, newSubscriptionid uint16) (err error) {
170 cptr := unsafe.Pointer(&payload[0])
171 size := C.e2ap_set_ric_subscription_delete_failure_sequence_number(cptr, C.size_t(len(payload)), C.long(newSubscriptionid))
173 return fmt.Errorf("e2ap wrapper is unable to set Subscription Delete Failure Sequence Number due to wrong or invalid payload. Erroxappde: %v", size)
179 func (c *E2ap) PackSubscriptionDeleteResponse(payload []byte, newSubscriptionid uint16) (newPayload []byte, err error) {
180 e2SubDelReq := packerif.NewPackerSubscriptionDeleteRequest()
181 packedData := &packer.PackedData{}
182 packedData.Buf = payload
183 err = e2SubDelReq.UnPack(packedData)
185 return make([]byte, 0), fmt.Errorf("PackSubDelResp: UnPack() failed: %s", err.Error())
187 getErr, subDelReq := e2SubDelReq.Get()
189 return make([]byte, 0), fmt.Errorf("PackSubDelResp: Get() failed: %s", getErr.Error())
192 e2SubDelResp := packerif.NewPackerSubscriptionDeleteResponse()
193 subDelResp := e2ap.E2APSubscriptionDeleteResponse{}
194 subDelResp.RequestId.Id = subDelReq.RequestId.Id
195 subDelResp.RequestId.Seq = uint32(newSubscriptionid)
196 subDelResp.FunctionId = subDelReq.FunctionId
197 err = e2SubDelResp.Set(&subDelResp)
199 return make([]byte, 0), fmt.Errorf("PackSubDelResp: Set() failed: %s", err.Error())
201 err, packedData = e2SubDelResp.Pack(nil)
203 return make([]byte, 0), fmt.Errorf("PackSubDelResp: Pack() failed: %s", err.Error())
205 return packedData.Buf, nil
209 func (c *E2ap) PackSubscriptionDeleteRequest(payload []byte, newSubscriptionid uint16) (newPayload []byte, err error) {
210 e2SubReq := packerif.NewPackerSubscriptionRequest()
211 packedData := &packer.PackedData{}
212 packedData.Buf = payload
213 err = e2SubReq.UnPack(packedData)
215 return make([]byte, 0), fmt.Errorf("PackSubDelReq: UnPack() failed: %s", err.Error())
217 getErr, subReq := e2SubReq.Get()
219 return make([]byte, 0), fmt.Errorf("PackSubDelReq: Get() failed: %s", getErr.Error())
222 e2SubDel := packerif.NewPackerSubscriptionDeleteRequest()
223 subDelReq := e2ap.E2APSubscriptionDeleteRequest{}
224 subDelReq.RequestId.Id = subReq.RequestId.Id
225 subDelReq.RequestId.Seq = uint32(newSubscriptionid)
226 subDelReq.FunctionId = subReq.FunctionId
227 err = e2SubDel.Set(&subDelReq)
229 return make([]byte, 0), fmt.Errorf("PackSubDelReq: Set() failed: %s", err.Error())
231 err, packedData = e2SubDel.Pack(nil)
233 return make([]byte, 0), fmt.Errorf("PackSubDelReq: Pack() failed: %s", err.Error())
235 return packedData.Buf, nil