-func (c *E2ap) GetSubscriptionSequenceNumber(payload []byte) (int, error) {
- asn1 := new(Asn1)
- message, err := asn1.Decode(payload)
- if err != nil {
- return 0, errors.New("Unable to decode payload due to "+ err.Error())
- }
- return message.SubscriptionId, nil
-}
-
-func (c *E2ap) SetSubscriptionSequenceNumber(payload []byte, newSubscriptionid int) ([]byte ,error) {
- asn1 := new(Asn1)
- message, err := asn1.Decode(payload)
- if err != nil {
- return make([]byte,0), errors.New("Unable to decode payload due to "+ err.Error())
- }
- message.SubscriptionId = newSubscriptionid
- payload, err = asn1.Encode(message)
- if err != nil {
- return make([]byte,0), errors.New("Unable to encode message due to "+ err.Error())
- }
- return payload, nil
+func (c *E2ap) GetSubscriptionRequestSequenceNumber(payload []byte) (sub_id uint16, err error) {
+ cptr := unsafe.Pointer(&payload[0])
+ cret := C.e2ap_get_ric_subscription_request_sequence_number(cptr, C.size_t(len(payload)))
+ if cret < 0 {
+ return 0, errors.New("e2ap wrapper is unable to get Subscirption Request Sequence Number due to wrong or invalid payload")
+ }
+ sub_id = uint16(cret)
+ return