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 /* RICsubscriptionDeleteResponse */
44 // Used by submgr, e2t test stub
45 func (c *E2ap) GetSubscriptionDeleteResponseSequenceNumber(payload []byte) (subId uint16, err error) {
46 cptr := unsafe.Pointer(&payload[0])
47 cret := C.e2ap_get_ric_subscription_delete_response_sequence_number(cptr, C.size_t(len(payload)))
49 return 0, fmt.Errorf("e2ap wrapper is unable to get Subscirption Delete Response Sequence Number due to wrong or invalid payload. Erroxappde: %v", cret)
55 // Used by e2t test stub
56 func (c *E2ap) SetSubscriptionDeleteResponseSequenceNumber(payload []byte, newSubscriptionid uint16) (err error) {
57 cptr := unsafe.Pointer(&payload[0])
58 size := C.e2ap_set_ric_subscription_delete_response_sequence_number(cptr, C.size_t(len(payload)), C.long(newSubscriptionid))
60 return fmt.Errorf("e2ap wrapper is unable to set Subscription Delete Response Sequence Number due to wrong or invalid payload. Erroxappde: %v", size)
65 /* RICsubscriptionRequestFailure */
68 func (c *E2ap) GetSubscriptionFailureSequenceNumber(payload []byte) (subId uint16, err error) {
69 cptr := unsafe.Pointer(&payload[0])
70 cret := C.e2ap_get_ric_subscription_failure_sequence_number(cptr, C.size_t(len(payload)))
72 return 0, fmt.Errorf("e2ap wrapper is unable to get Subscirption Failure Sequence Number due to wrong or invalid payload. Erroxappde: %v", cret)
78 // Used by e2t test stub
79 func (c *E2ap) SetSubscriptionFailureSequenceNumber(payload []byte, newSubscriptionid uint16) (err error) {
80 cptr := unsafe.Pointer(&payload[0])
81 size := C.e2ap_set_ric_subscription_failure_sequence_number(cptr, C.size_t(len(payload)), C.long(newSubscriptionid))
83 return fmt.Errorf("e2ap wrapper is unable to set Subscription Failure Sequence Number due to wrong or invalid payload. Erroxappde: %v", size)
88 /* RICsubscriptionDeleteFailure */
91 func (c *E2ap) GetSubscriptionDeleteFailureSequenceNumber(payload []byte) (subId uint16, err error) {
92 cptr := unsafe.Pointer(&payload[0])
93 cret := C.e2ap_get_ric_subscription_delete_failure_sequence_number(cptr, C.size_t(len(payload)))
95 return 0, fmt.Errorf("e2ap wrapper is unable to get Subscirption Delete Failure Sequence Number due to wrong or invalid payload. Erroxappde: %v", cret)
102 func (c *E2ap) SetSubscriptionDeleteFailureSequenceNumber(payload []byte, newSubscriptionid uint16) (err error) {
103 cptr := unsafe.Pointer(&payload[0])
104 size := C.e2ap_set_ric_subscription_delete_failure_sequence_number(cptr, C.size_t(len(payload)), C.long(newSubscriptionid))
106 return fmt.Errorf("e2ap wrapper is unable to set Subscription Delete Failure Sequence Number due to wrong or invalid payload. Erroxappde: %v", size)
112 func (c *E2ap) PackSubscriptionDeleteResponseFromSubDelReq(payload []byte, newSubscriptionid uint16) (newPayload []byte, err error) {
114 subDelReq, err := c.UnpackSubscriptionDeleteRequest(payload)
116 return make([]byte, 0), fmt.Errorf("PackSubDelRespFromSubDelReq: SubDelReq unpack failed: %s", err.Error())
119 subDelResp := &e2ap.E2APSubscriptionDeleteResponse{}
120 subDelResp.RequestId.Id = subDelReq.RequestId.Id
121 subDelResp.RequestId.Seq = uint32(newSubscriptionid)
122 subDelResp.FunctionId = subDelReq.FunctionId
124 packedData, err := c.PackSubscriptionDeleteResponse(subDelResp)
126 return make([]byte, 0), fmt.Errorf("PackSubDelRespFromSubDelReq: SubDelResp pack failed: %s", err.Error())
128 return packedData.Buf, nil
131 //-----------------------------------------------------------------------------
133 //-----------------------------------------------------------------------------
134 func (c *E2ap) UnpackSubscriptionRequest(payload []byte) (*e2ap.E2APSubscriptionRequest, error) {
135 e2SubReq := packerif.NewPackerSubscriptionRequest()
136 packedData := &packer.PackedData{}
137 packedData.Buf = payload
138 err := e2SubReq.UnPack(packedData)
142 err, subReq := e2SubReq.Get()
149 func (c *E2ap) PackSubscriptionRequest(req *e2ap.E2APSubscriptionRequest) (*packer.PackedData, error) {
150 e2SubReq := packerif.NewPackerSubscriptionRequest()
151 err := e2SubReq.Set(req)
155 err, packedData := e2SubReq.Pack(nil)
159 return packedData, nil
162 //-----------------------------------------------------------------------------
164 //-----------------------------------------------------------------------------
165 func (c *E2ap) UnpackSubscriptionResponse(payload []byte) (*e2ap.E2APSubscriptionResponse, error) {
166 e2SubResp := packerif.NewPackerSubscriptionResponse()
167 packedData := &packer.PackedData{}
168 packedData.Buf = payload
169 err := e2SubResp.UnPack(packedData)
173 err, subResp := e2SubResp.Get()
180 func (c *E2ap) PackSubscriptionResponse(req *e2ap.E2APSubscriptionResponse) (*packer.PackedData, error) {
181 e2SubResp := packerif.NewPackerSubscriptionResponse()
182 err := e2SubResp.Set(req)
186 err, packedData := e2SubResp.Pack(nil)
190 return packedData, nil
193 //-----------------------------------------------------------------------------
195 //-----------------------------------------------------------------------------
196 func (c *E2ap) UnpackSubscriptionDeleteRequest(payload []byte) (*e2ap.E2APSubscriptionDeleteRequest, error) {
197 e2SubDelReq := packerif.NewPackerSubscriptionDeleteRequest()
198 packedData := &packer.PackedData{}
199 packedData.Buf = payload
200 err := e2SubDelReq.UnPack(packedData)
204 err, subDelReq := e2SubDelReq.Get()
208 return subDelReq, nil
211 func (c *E2ap) PackSubscriptionDeleteRequest(req *e2ap.E2APSubscriptionDeleteRequest) (*packer.PackedData, error) {
212 e2SubDelReq := packerif.NewPackerSubscriptionDeleteRequest()
213 err := e2SubDelReq.Set(req)
217 err, packedData := e2SubDelReq.Pack(nil)
221 return packedData, nil
224 //-----------------------------------------------------------------------------
226 //-----------------------------------------------------------------------------
227 func (c *E2ap) UnpackSubscriptionDeleteResponse(payload []byte) (*e2ap.E2APSubscriptionDeleteResponse, error) {
228 e2SubDelResp := packerif.NewPackerSubscriptionDeleteResponse()
229 packedData := &packer.PackedData{}
230 packedData.Buf = payload
231 err := e2SubDelResp.UnPack(packedData)
235 err, subDelResp := e2SubDelResp.Get()
239 return subDelResp, nil
242 func (c *E2ap) PackSubscriptionDeleteResponse(req *e2ap.E2APSubscriptionDeleteResponse) (*packer.PackedData, error) {
243 e2SubDelResp := packerif.NewPackerSubscriptionDeleteResponse()
244 err := e2SubDelResp.Set(req)
248 err, packedData := e2SubDelResp.Pack(nil)
252 return packedData, nil