srsLTE/lib/include/srsran/asn1/s1ap_utils.h

82 lines
2.0 KiB
C++

/**
*
* \section COPYRIGHT
*
* Copyright 2013-2021 Software Radio Systems Limited
*
* By using this file, you agree to the terms and conditions set
* forth in the LICENSE file which can be found at the top level of
* the distribution.
*
*/
#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_s;
struct ue_context_mod_request_s;
struct erab_setup_request_s;
struct erab_release_cmd_s;
struct erab_modify_request_s;
struct ue_paging_id_c;
struct ho_request_s;
struct sourceenb_to_targetenb_transparent_container_s;
struct init_context_setup_resp_s;
struct erab_setup_resp_s;
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_s;
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;
template <class ies_set_paramT_>
struct protocol_ie_single_container_s;
using bearers_subject_to_status_transfer_list_l =
dyn_array<protocol_ie_single_container_s<bearers_subject_to_status_transfer_item_ies_o> >;
using rrc_establishment_cause_e = enumerated<rrc_establishment_cause_opts, true, 3>;
using cause_radio_network_e = enumerated<cause_radio_network_opts, true, 4>;
/**************************
* S1AP Obj Id
*************************/
template <typename T>
uint32_t get_obj_id(const T& obj);
template <typename T>
bool lower_obj_id(const T& lhs, const T& rhs)
{
return get_obj_id(lhs) < get_obj_id(rhs);
}
template <typename T>
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