Implement a SCTP/M3UA/SCCP/TCAP/MAP stack.
More...
#include <osmocom/core/linuxlist.h>
#include "libosmo-m3ua/include/bsc_data.h"
#include "libosmo-m3ua/include/sctp_m3ua.h"
#include <freeradius-devel/server/base.h>
#include <freeradius-devel/server/module_rlm.h>
#include <freeradius-devel/util/debug.h>
#include "sigtran.h"
#include "attrs.h"
#include <assert.h>
#include <limits.h>
Go to the source code of this file.
Implement a SCTP/M3UA/SCCP/TCAP/MAP stack.
- Id
- 9357724e28282a14838a0030728127222bbccfff
- Copyright
- 2016 Network RADIUS SAS (licen.nosp@m.se@n.nosp@m.etwor.nosp@m.krad.nosp@m.ius.c.nosp@m.om)
Definition in file rlm_sigtran.c.
◆ LOG_PREFIX_ARGS
◆ MTP3_PC_CHECK
Value: do { \
if (
inst->conn_conf.mtp3_##_x > 16777215) { \
cf_log_err(
conf,
"Invalid value \"%d\" for '#_x', must be between 0-16777215", \
inst->conn_conf.mtp3_##_x); \
return -1; \
} \
__hack_##_x =
inst->conn_conf.mtp3_##_x; \
} while (0)
eap_aka_sim_process_conf_t * inst
◆ mod_authorize()
◆ mod_detach()
◆ mod_instantiate()
◆ mod_thread_detach()
◆ mod_thread_instantiate()
◆ sigtran_sccp_sockaddr_from_conf()
Convert our sccp address config structure into sockaddr_sccp.
- Parameters
-
ctx | to allocated address in. |
out | Where to write the parsed data. |
conf | to parse. |
cs | specifying sccp address. |
- Returns
- 0 on success.
- -1 on failure.
Definition at line 218 of file rlm_sigtran.c.
◆ __hack_dpc
◆ __hack_opc
◆ attr_auth_type
◆ attr_eap_aka_sim_autn
◆ attr_eap_aka_sim_ck
◆ attr_eap_aka_sim_ik
◆ attr_eap_aka_sim_kc
◆ attr_eap_aka_sim_rand
◆ attr_eap_aka_sim_sres
◆ attr_eap_aka_sim_xres
◆ dict_eap_aka_sim
◆ m3ua_config
Initial value:= {
}
#define CONF_PARSER_TERMINATOR
#define FR_CONF_OFFSET(_name, _struct, _field)
conf_parser_t which parses a single CONF_PAIR, writing the result to a field in a struct
#define FR_CONF_OFFSET_IS_SET(_name, _type, _flags, _struct, _field)
conf_parser_t which parses a single CONF_PAIR, writing the result to a field in a struct,...
@ CONF_FLAG_SUBSECTION
Instead of putting the information into a configuration structure, the configuration file routines MA...
static const conf_parser_t m3ua_route[]
Definition at line 93 of file rlm_sigtran.c.
◆ m3ua_route
Initial value:= {
}
#define FR_CONF_OFFSET_FLAGS(_name, _flags, _struct, _field)
conf_parser_t which parses a single CONF_PAIR, writing the result to a field in a struct
@ CONF_FLAG_MULTI
CONF_PAIR can have multiple copies.
@ FR_TYPE_UINT32
32 Bit unsigned integer.
Definition at line 85 of file rlm_sigtran.c.
◆ m3ua_traffic_mode_table
Initial value:= {
}
#define L(_str)
Helper for initialising arrays of string literals.
Definition at line 66 of file rlm_sigtran.c.
◆ m3ua_traffic_mode_table_len
◆ map_config
◆ module_config
Initial value:= {
}
#define FR_CONF_POINTER(_name, _type, _flags, _res_p)
conf_parser_t which parses a single CONF_PAIR producing a single global result
@ CONF_FLAG_REQUIRED
Error out if no matching CONF_PAIR is found, and no dflt value is set.
static const conf_parser_t sccp_config[]
static const conf_parser_t map_config[]
static const conf_parser_t sctp_config[]
static const conf_parser_t m3ua_config[]
static const conf_parser_t mtp3_config[]
Definition at line 146 of file rlm_sigtran.c.
◆ mtp3_config
◆ rlm_sigtran
Initial value:= {
.common = {
.name = "sigtran",
},
.method_group = {
}
}
}
#define MODULE_MAGIC_INIT
Stop people using different module/library/server versions together.
static int mod_detach(module_detach_ctx_t const *mctx)
Cleanup internal state.
static unlang_action_t mod_authorize(rlm_rcode_t *p_result, module_ctx_t const *mctx, request_t *request)
static int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
static const conf_parser_t module_config[]
static int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
static int mod_instantiate(module_inst_ctx_t const *mctx)
#define SECTION_NAME(_name1, _name2)
Define a section name consisting of a verb and a noun.
#define MODULE_BINDING_TERMINATOR
Terminate a module binding list.
Named methods exported by a module.
struct rlm_sigtran rlm_sigtran_t
Definition at line 425 of file rlm_sigtran.c.
◆ rlm_sigtran_dict
Initial value:= {
{ .out = &
dict_eap_aka_sim, .base_dir =
"eap/aka-sim", .proto =
"eap-aka-sim" },
{ NULL }
}
fr_dict_t const * dict_eap_aka_sim
Definition at line 180 of file rlm_sigtran.c.
◆ rlm_sigtran_dict_attr
Initial value:= {
{ NULL }
}
@ FR_TYPE_OCTETS
Raw octets.
fr_dict_attr_t const * attr_eap_aka_sim_ik
fr_dict_attr_t const * attr_eap_aka_sim_xres
fr_dict_attr_t const * attr_eap_aka_sim_ck
fr_dict_attr_t const * attr_eap_aka_sim_sres
fr_dict_attr_t const * attr_eap_aka_sim_kc
fr_dict_attr_t const * attr_eap_aka_sim_autn
fr_dict_attr_t const * attr_eap_aka_sim_rand
Definition at line 188 of file rlm_sigtran.c.
◆ sccp_address
Initial value:= {
}
@ FR_TYPE_UINT8
8 Bit unsigned integer.
static const conf_parser_t sccp_global_title[]
Structure representing a complete Q.173 SCCP address.
Definition at line 122 of file rlm_sigtran.c.
◆ sccp_config
Initial value:= {
}
#define FR_CONF_OFFSET_SUBSECTION(_name, _flags, _struct, _field, _subcs)
conf_parser_t which populates a sub-struct using a CONF_SECTION
static const conf_parser_t sccp_address[]
Definition at line 130 of file rlm_sigtran.c.
◆ sccp_global_title
◆ sctp_config
Initial value:= {
}
#define FR_CONF_OFFSET_TYPE_FLAGS(_name, _type, _flags, _struct, _field)
conf_parser_t which parses a single CONF_PAIR, writing the result to a field in a struct
@ FR_TYPE_COMBO_IP_ADDR
IPv4 or IPv6 address depending on length.
Definition at line 73 of file rlm_sigtran.c.
◆ sigtran_instances