diff --git a/srsgnb/hdr/stack/ric/e2ap.h b/srsgnb/hdr/stack/ric/e2ap.h index c539de8ba..0ff57e664 100644 --- a/srsgnb/hdr/stack/ric/e2ap.h +++ b/srsgnb/hdr/stack/ric/e2ap.h @@ -59,6 +59,11 @@ public: e2_ap_pdu_c generate_subscription_failure(ric_subscription_reponse_t ric_subscription_reponse); e2_ap_pdu_c generate_subscription_delete_response(ric_subscription_reponse_t ric_subscription_reponse); e2_ap_pdu_c generate_subscription_delete_failure(ric_subscription_reponse_t ric_subscription_reponse); + e2_ap_pdu_c generate_subscription_delete_required(ric_subscription_reponse_t ric_subscription_reponse); + e2_ap_pdu_c generate_subscription_modification_response(); + e2_ap_pdu_c generate_subscription_modification_failure(); + e2_ap_pdu_c generate_subscription_modification_required(); + e2_ap_pdu_c generate_indication(ric_indication_t& ric_indication); e2_ap_pdu_c generate_reset_request(); e2_ap_pdu_c generate_reset_response(); diff --git a/srsgnb/hdr/stack/ric/ric_subscription.h b/srsgnb/hdr/stack/ric/ric_subscription.h index b3c0381ad..140c26b43 100644 --- a/srsgnb/hdr/stack/ric/ric_subscription.h +++ b/srsgnb/hdr/stack/ric/ric_subscription.h @@ -36,6 +36,10 @@ public: void send_subscription_failure(); void delete_subscription(); + bool handle_subscription_modification_request(uint32_t ric_subscription_modification_request); + bool handle_subscription_modification_confirm(uint32_t ric_subscription_modification_confirm); + bool handle_subscription_modification_refuse(uint32_t ric_subscription_modification_refuse); + private: void send_ric_indication(); uint32_t _generate_ric_indication_sn(); diff --git a/srsgnb/src/stack/ric/e2ap.cc b/srsgnb/src/stack/ric/e2ap.cc index a2527d68a..b62b44e16 100644 --- a/srsgnb/src/stack/ric/e2ap.cc +++ b/srsgnb/src/stack/ric/e2ap.cc @@ -176,6 +176,34 @@ e2_ap_pdu_c e2ap::generate_subscription_delete_failure(ric_subscription_reponse_ return pdu; } +e2_ap_pdu_c e2ap::generate_subscription_delete_required(ric_subscription_reponse_t ric_subscription_reponse) +{ + // TODO: available in e2ap-v3 + e2_ap_pdu_c pdu; + return pdu; +} + +e2_ap_pdu_c e2ap::generate_subscription_modification_response() +{ + // TODO: available in e2ap-v3 + e2_ap_pdu_c pdu; + return pdu; +} + +e2_ap_pdu_c e2ap::generate_subscription_modification_failure() +{ + // TODO: available in e2ap-v3 + e2_ap_pdu_c pdu; + return pdu; +} + +e2_ap_pdu_c e2ap::generate_subscription_modification_required() +{ + // TODO: available in e2ap-v3 + e2_ap_pdu_c pdu; + return pdu; +} + int e2ap::process_setup_response(e2setup_resp_s setup_response) { if (setup_procedure_transaction_id == setup_response->transaction_id.value.value) { diff --git a/srsgnb/src/stack/ric/ric_subscription.cc b/srsgnb/src/stack/ric/ric_subscription.cc index 22e37149e..1eeb1dd81 100644 --- a/srsgnb/src/stack/ric/ric_subscription.cc +++ b/srsgnb/src/stack/ric/ric_subscription.cc @@ -149,6 +149,27 @@ void ric_client::ric_subscription::delete_subscription() parent->queue_send_e2ap_pdu(send_pdu); } +bool ric_client::ric_subscription::handle_subscription_modification_request( + uint32_t ric_subscription_modification_request) +{ + // TODO: available in e2ap-v3 + return false; +} + +bool ric_client::ric_subscription::handle_subscription_modification_confirm( + uint32_t ric_subscription_modification_confirm) +{ + // TODO: available in e2ap-v3 + return false; +} + +bool ric_client::ric_subscription::handle_subscription_modification_refuse( + uint32_t ric_subscription_modification_refuse) +{ + // TODO: available in e2ap-v3 + return false; +} + uint32_t ric_client::ric_subscription::_generate_ric_indication_sn() { uint32_t sn = _ric_indication_sn_gen;