-func (c *Control) handleSubscriptionRequest(datagram *RmrDatagram) ( err error) {
- /* TODO: removed to being able to integrate with UEMGR
- content, err := c.e2ap.GetPayloadContent(datagram.Payload)
- */
- xapp.Logger.Info("Subscription Request Message received with ID: %v", datagram.SubscriptionId)
- new_sub_id := c.registry.GetSubscriptionId()
- /* TODO: removed to being able to integrate with UEMGR
- payload, err := c.e2ap.SetSubscriptionSequenceNumber(datagram.Payload, new_sub_id)
- if err != nil {
- xapp.Logger.Error("Unable to set Subscription Sequence Number in Payload due to: "+ err.Error())
- return
- }
- */
- xapp.Logger.Info("New Subscription Registered, forwarding to E2T")
- c.rmrSend(&RmrDatagram{C.RIC_SUB_REQ , new_sub_id, datagram.Payload})
- return
+func (c *Control) handleSubscriptionRequest(datagram *RmrDatagram) (err error) {
+ payload_seq_num, err := c.e2ap.GetSubscriptionRequestSequenceNumber(datagram.Payload)
+ if err != nil {
+ err = errors.New("Unable to get Subscription Sequence Number from Payload due to: " + err.Error())
+ return
+ }
+ xapp.Logger.Info("Subscription Request Received. RMR SUBSCRIPTION_ID: %v | PAYLOAD SEQUENCE_NUMBER: %v", datagram.SubscriptionId, payload_seq_num)
+ new_sub_id := c.registry.ReserveSequenceNumber()
+ payload, err := c.e2ap.SetSubscriptionRequestSequenceNumber(datagram.Payload, new_sub_id)
+ if err != nil {
+ err = errors.New("Unable to set Subscription Sequence Number in Payload due to: " + err.Error())
+ return
+ }
+ xapp.Logger.Info("Generated ID: %v. Forwarding to E2 Termination...", int(new_sub_id))
+ c.rmrSend(&RmrDatagram{C.RIC_SUB_REQ, new_sub_id, payload})
+ return