/** * Copyright 2013-2023 Software Radio Systems Limited * * This file is part of srsRAN. * * srsRAN is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of * the License, or (at your option) any later version. * * srsRAN is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * A copy of the GNU Affero General Public License can be found in * the LICENSE file in the top-level directory of this distribution * and at http://www.gnu.org/licenses/. * */ #ifndef SRSRAN_S1AP_UTILS_H #define SRSRAN_S1AP_UTILS_H #include "asn1_utils.h" /************************ * Forward declarations ***********************/ namespace asn1 { namespace s1ap { struct init_context_setup_request_ies_container; using init_context_setup_request_s = elementary_procedure_option; struct ue_context_mod_request_ies_container; using ue_context_mod_request_s = elementary_procedure_option; struct erab_setup_request_ies_container; using erab_setup_request_s = elementary_procedure_option; struct erab_release_cmd_ies_container; using erab_release_cmd_s = elementary_procedure_option; struct erab_modify_request_ies_container; using erab_modify_request_s = elementary_procedure_option; struct ue_paging_id_c; struct ho_request_ies_container; using ho_request_s = elementary_procedure_option; struct sourceenb_to_targetenb_transparent_container_s; struct init_context_setup_resp_ies_container; using init_context_setup_resp_s = elementary_procedure_option; struct erab_setup_resp_ies_container; using erab_setup_resp_s = elementary_procedure_option; struct rrc_establishment_cause_opts; struct cause_radio_network_opts; struct bearers_subject_to_status_transfer_item_ies_o; struct erab_level_qos_params_s; struct ho_cmd_ies_container; using ho_cmd_s = elementary_procedure_option; struct erab_admitted_item_s; struct erab_to_be_modified_item_bearer_mod_req_s; struct cause_c; struct erab_item_s; struct ue_aggregate_maximum_bitrate_s; using bearers_subject_to_status_transfer_list_l = dyn_array >; using rrc_establishment_cause_e = enumerated; using cause_radio_network_e = enumerated; /************************** * S1AP Obj Id *************************/ template uint32_t get_obj_id(const T& obj); template bool lower_obj_id(const T& lhs, const T& rhs) { return get_obj_id(lhs) < get_obj_id(rhs); } template bool equal_obj_id(const T& lhs, const T& rhs) { return get_obj_id(lhs) == get_obj_id(rhs); } } // namespace s1ap } // namespace asn1 namespace srsenb { using transp_addr_t = asn1::bounded_bitstring<1, 160, true, true>; } #endif // SRSRAN_S1AP_UTILS_H