libosmogsm 1.7.0.32-e145
Osmocom GSM library
|
Files | |
file | lapdm.h |
file | lapdm.c |
GSM LAPDm (TS 04.06) implementation. | |
Data Structures | |
struct | lapdm_msg_ctx |
LAPDm message context. More... | |
struct | lapdm_datalink |
LAPDm datalink like TS 04.06 / Section 3.5.2. More... | |
struct | lapdm_entity |
a LAPDm Entity More... | |
struct | lapdm_channel |
the two lapdm_entities that form a GSM logical channel (ACCH + DCCH) More... | |
Macros | |
#define | LAPDM_ENT_F_EMPTY_FRAME 0x0001 |
#define | LAPDM_ENT_F_POLLING_ONLY 0x0002 |
#define | LAPD_U_SABM 0x7 |
#define | LAPDm_LPD_NORMAL 0 |
#define | LAPDm_LPD_SMSCB 1 |
#define | LAPDm_SAPI_NORMAL 0 |
#define | LAPDm_SAPI_SMS 3 |
#define | LAPDm_ADDR(lpd, sapi, cr) ((((lpd) & 0x3) << 5) | (((sapi) & 0x7) << 2) | (((cr) & 0x1) << 1) | 0x1) |
#define | LAPDm_ADDR_LPD(addr) (((addr) >> 5) & 0x3) |
#define | LAPDm_ADDR_SAPI(addr) (((addr) >> 2) & 0x7) |
#define | LAPDm_ADDR_CR(addr) (((addr) >> 1) & 0x1) |
#define | LAPDm_ADDR_EA(addr) ((addr) & 0x1) |
#define | LAPDm_CTRL_I(nr, ns, p) ((((nr) & 0x7) << 5) | (((p) & 0x1) << 4) | (((ns) & 0x7) << 1)) |
#define | LAPDm_CTRL_S(nr, s, p) ((((nr) & 0x7) << 5) | (((p) & 0x1) << 4) | (((s) & 0x3) << 2) | 0x1) |
#define | LAPDm_CTRL_U(u, p) ((((u) & 0x1c) << (5-2)) | (((p) & 0x1) << 4) | (((u) & 0x3) << 2) | 0x3) |
#define | LAPDm_CTRL_is_I(ctrl) (((ctrl) & 0x1) == 0) |
#define | LAPDm_CTRL_is_S(ctrl) (((ctrl) & 0x3) == 1) |
#define | LAPDm_CTRL_is_U(ctrl) (((ctrl) & 0x3) == 3) |
#define | LAPDm_CTRL_U_BITS(ctrl) ((((ctrl) & 0xC) >> 2) | ((ctrl) & 0xE0) >> 3) |
#define | LAPDm_CTRL_PF_BIT(ctrl) (((ctrl) >> 4) & 0x1) |
#define | LAPDm_CTRL_S_BITS(ctrl) (((ctrl) & 0xC) >> 2) |
#define | LAPDm_CTRL_I_Ns(ctrl) (((ctrl) & 0xE) >> 1) |
#define | LAPDm_CTRL_Nr(ctrl) (((ctrl) & 0xE0) >> 5) |
#define | LAPDm_LEN(len) ((len << 2) | 0x1) |
#define | LAPDm_MORE 0x2 |
#define | LAPDm_EL 0x1 |
#define | LAPDm_U_UI 0x0 |
#define | N201_AB_SACCH 18 |
#define | N201_AB_SDCCH 20 |
#define | N201_AB_FACCH 20 |
#define | N201_Bbis 23 |
#define | N201_Bter_SACCH 21 |
#define | N201_Bter_SDCCH 23 |
#define | N201_Bter_FACCH 23 |
#define | N201_B4 19 |
#define | N200_EST_REL 5 |
#define | N200_TR_SACCH 5 |
#define | N200_TR_SDCCH 23 |
#define | N200_TR_FACCH_FR 34 |
#define | N200_TR_EFACCH_FR 48 |
#define | N200_TR_FACCH_HR 29 |
#define | N200 N200_TR_SDCCH |
Typedefs | |
typedef int(* | lapdm_cb_t) (struct msgb *msg, struct lapdm_entity *le, void *ctx) |
Enumerations | |
enum | lapdm_mode { LAPDM_MODE_MS , LAPDM_MODE_BTS } |
LAPDm mode/role. More... | |
enum | lapdm_dl_sapi { DL_SAPI0 = 0 , DL_SAPI3 = 1 , _NR_DL_SAPI } |
LAPDm datalink SAPIs. More... | |
enum | lapdm_format { LAPDm_FMT_A , LAPDm_FMT_B , LAPDm_FMT_Bbis , LAPDm_FMT_Bter , LAPDm_FMT_B4 } |
Variables | |
const char * | lapdm_state_names [] |
const struct value_string | osmo_ph_prim_names [] |
void * | tall_lapd_ctx |
#define LAPD_U_SABM 0x7 |
#define LAPDm_ADDR | ( | lpd, | |
sapi, | |||
cr | |||
) | ((((lpd) & 0x3) << 5) | (((sapi) & 0x7) << 2) | (((cr) & 0x1) << 1) | 0x1) |
#define LAPDm_ADDR_CR | ( | addr | ) | (((addr) >> 1) & 0x1) |
#define LAPDm_ADDR_EA | ( | addr | ) | ((addr) & 0x1) |
#define LAPDm_ADDR_LPD | ( | addr | ) | (((addr) >> 5) & 0x3) |
#define LAPDm_ADDR_SAPI | ( | addr | ) | (((addr) >> 2) & 0x7) |
#define LAPDm_CTRL_I_Ns | ( | ctrl | ) | (((ctrl) & 0xE) >> 1) |
#define LAPDm_CTRL_is_I | ( | ctrl | ) | (((ctrl) & 0x1) == 0) |
#define LAPDm_CTRL_is_S | ( | ctrl | ) | (((ctrl) & 0x3) == 1) |
#define LAPDm_CTRL_is_U | ( | ctrl | ) | (((ctrl) & 0x3) == 3) |
#define LAPDm_CTRL_Nr | ( | ctrl | ) | (((ctrl) & 0xE0) >> 5) |
#define LAPDm_CTRL_PF_BIT | ( | ctrl | ) | (((ctrl) >> 4) & 0x1) |
#define LAPDm_CTRL_S | ( | nr, | |
s, | |||
p | |||
) | ((((nr) & 0x7) << 5) | (((p) & 0x1) << 4) | (((s) & 0x3) << 2) | 0x1) |
#define LAPDm_CTRL_S_BITS | ( | ctrl | ) | (((ctrl) & 0xC) >> 2) |
#define LAPDm_CTRL_U | ( | u, | |
p | |||
) | ((((u) & 0x1c) << (5-2)) | (((p) & 0x1) << 4) | (((u) & 0x3) << 2) | 0x3) |
#define LAPDm_CTRL_U_BITS | ( | ctrl | ) | ((((ctrl) & 0xC) >> 2) | ((ctrl) & 0xE0) >> 3) |
#define LAPDm_EL 0x1 |
#define LAPDM_ENT_F_EMPTY_FRAME 0x0001 |
#define LAPDM_ENT_F_POLLING_ONLY 0x0002 |
#define LAPDm_LPD_NORMAL 0 |
#define LAPDm_LPD_SMSCB 1 |
#define LAPDm_MORE 0x2 |
#define LAPDm_SAPI_NORMAL 0 |
#define LAPDm_SAPI_SMS 3 |
#define LAPDm_U_UI 0x0 |
#define N200 N200_TR_SDCCH |
#define N200_EST_REL 5 |
#define N200_TR_EFACCH_FR 48 |
#define N200_TR_FACCH_FR 34 |
#define N200_TR_FACCH_HR 29 |
#define N200_TR_SACCH 5 |
#define N200_TR_SDCCH 23 |
#define N201_AB_FACCH 20 |
#define N201_AB_SACCH 18 |
#define N201_AB_SDCCH 20 |
#define N201_B4 19 |
#define N201_Bbis 23 |
#define N201_Bter_FACCH 23 |
#define N201_Bter_SACCH 21 |
#define N201_Bter_SDCCH 23 |
|
static |
References GSM_LCHAN_SDCCH, GSM_LCHAN_TCH_F, GSM_LCHAN_TCH_H, len, N200_TR_FACCH_FR, N200_TR_FACCH_HR, and N200_TR_SDCCH.
Referenced by lapdm_channel_init3().
References OSMO_DEPRECATED, and OSMO_DEPRECATED_OUTSIDE.
|
static |
References gsm_fn2gsmtime(), len, msg, RSL_CHAN_RACH, RSL_IE_REQ_REFERENCE, rsl_init_cchan_hdr(), RSL_MT_CHAN_CONF, and rslms_sendmsg().
Referenced by lapdm_phsap_up().
References LAPDM_ENT_F_EMPTY_FRAME, lapdm_phsap_dequeue_prim(), len, msg, msgb_free(), PRIM_OP_REQUEST, PRIM_PH_EMPTY_FRAME, and SAP_GSM_PH.
Referenced by lapdm_phsap_up().
|
static |
References lapdm_msg_ctx::chan_nr, chan_nr, lapd_msg_ctx::cr, lapd_msg_ctx::dl, lapdm_msg_ctx::dl, lapdm_datalink::dl, DLLAPD, lapd_msg_ctx::format, LAPD_FORM_I, LAPD_FORM_S, LAPD_FORM_U, LAPD_FORM_UKN, lapd_ph_data_ind(), LAPDm_ADDR_CR, LAPDm_ADDR_EA, LAPDm_ADDR_LPD, LAPDm_ADDR_SAPI, LAPDm_CTRL_I_Ns, LAPDm_CTRL_is_I, LAPDm_CTRL_is_S, LAPDm_CTRL_is_U, LAPDm_CTRL_Nr, LAPDm_CTRL_PF_BIT, LAPDm_CTRL_S_BITS, LAPDm_CTRL_U_BITS, lapdm_datalink_for_sapi(), LAPDm_EL, lapdm_msg_ctx::lapdm_fmt, LAPDm_FMT_A, LAPDm_FMT_B, LAPDm_FMT_B4, LAPDm_FMT_Bbis, LAPDm_FMT_Bter, LAPDM_MODE_MS, LAPDm_MORE, lapdm_rx_not_permitted(), LAPDm_SAPI_NORMAL, LAPDm_SAPI_SMS, LAPDm_U_UI, len, lapd_msg_ctx::length, lapdm_msg_ctx::link_id, link_id, LOGDL, LOGL_INFO, LOGL_NOTICE, LOGP, lapd_msg_ctx::lpd, lapdm_datalink::mctx, lapd_msg_ctx::more, msg, msgb_free(), lapd_msg_ctx::n201, N201_AB_SACCH, N201_AB_SDCCH, N201_B4, N201_Bbis, lapd_msg_ctx::n_recv, lapd_msg_ctx::n_send, lapd_msg_ctx::p_f, RLL_CAUSE_FRM_UNIMPL, RSL_MT_UNIT_DATA_IND, rsl_rll_error(), lapd_msg_ctx::s_u, lapd_msg_ctx::sapi, send_rslms_rll_l3(), lapdm_msg_ctx::ta_ind, and lapdm_msg_ctx::tx_power_ind.
Referenced by lapdm_phsap_up().
|
static |
References gsm_fn2gsmtime(), len, msg, msgb_tv_fixed_put(), msgb_tv_put(), req_ref, RSL_CHAN_RACH, RSL_IE_ACCESS_DELAY, RSL_IE_REQ_REFERENCE, rsl_init_cchan_hdr(), RSL_MT_CHAN_RQD, and rslms_sendmsg().
Referenced by lapdm_phsap_up().
void lapdm_channel_exit | ( | struct lapdm_channel * | lc | ) |
References lapdm_entity_exit(), and len.
void lapdm_channel_init | ( | struct lapdm_channel * | lc, |
enum lapdm_mode | mode | ||
) |
initialize a LAPDm channel and all its channels
[in] | lc | lapdm_channel to be initialized |
[in] | mode | lapdm_mode (BTS/MS) |
Don't use this function; It doesn't support different T200 values per API and doesn't set the correct N200 counter, both of which are required by GSM specs and supported by lapdm_channel_init2().
References _NR_DL_SAPI, GSM_LCHAN_SDCCH, lapdm_channel_init3(), len, and mode.
int lapdm_channel_init2 | ( | struct lapdm_channel * | lc, |
enum lapdm_mode | mode, | ||
const int * | t200_ms_dcch, | ||
const int * | t200_ms_acch, | ||
enum gsm_chan_t | chan_t | ||
) |
initialize a LAPDm channel and all its channels
[in] | lc | lapdm_channel to be initialized |
[in] | mode | lapdm_mode (BTS/MS) |
[in] | t200_ms_dcch | per-SAPI array of T200 in milli-seconds for DCCH |
[in] | t200_ms_acch | per-SAPI array of T200 in milli-seconds for SACCH |
[in] | chan_t | GSM channel type (to correctly set N200) |
References lapdm_channel_init3(), len, and mode.
int lapdm_channel_init3 | ( | struct lapdm_channel * | lc, |
enum lapdm_mode | mode, | ||
const int * | t200_ms_dcch, | ||
const int * | t200_ms_acch, | ||
enum gsm_chan_t | chan_t, | ||
const char * | name_pfx | ||
) |
initialize a LAPDm channel and all its channels
[in] | lc | lapdm_channel to be initialized |
[in] | mode | lapdm_mode (BTS/MS) |
[in] | t200_ms_dcch | per-SAPI array of T200 in milli-seconds for DCCH |
[in] | t200_ms_acch | per-SAPI array of T200 in milli-seconds for SACCH |
[in] | chan_t | GSM channel type (to correctly set N200) \parma[in] name_pfx human-readable name (copied by function + extended with ACCH/DCCH) |
References get_n200_dcch(), lapdm_entity_init3(), len, mode, N200_TR_SACCH, name, and tall_lapd_ctx.
Referenced by lapdm_channel_init(), and lapdm_channel_init2().
void lapdm_channel_reset | ( | struct lapdm_channel * | lc | ) |
Reset a LAPDm channel with all its entities.
References lapdm_entity_reset(), and len.
void lapdm_channel_set_flags | ( | struct lapdm_channel * | lc, |
unsigned int | flags | ||
) |
Set the flags of all LAPDm entities in a LAPDm channel.
References flags, lapdm_entity_set_flags(), and len.
void lapdm_channel_set_l1 | ( | struct lapdm_channel * | lc, |
osmo_prim_cb | cb, | ||
void * | ctx | ||
) |
Set the L1 callback and context of a LAPDm channel.
References len.
void lapdm_channel_set_l3 | ( | struct lapdm_channel * | lc, |
lapdm_cb_t | cb, | ||
void * | ctx | ||
) |
Set the L3 callback and context of a LAPDm channel.
References len.
int lapdm_channel_set_mode | ( | struct lapdm_channel * | lc, |
enum lapdm_mode | mode | ||
) |
Set the lapdm_mode of a LAPDm channel.
References lapdm_entity_set_mode(), len, and mode.
struct lapdm_datalink * lapdm_datalink_for_sapi | ( | struct lapdm_entity * | le, |
uint8_t | sapi | ||
) |
References LAPDm_SAPI_NORMAL, LAPDm_SAPI_SMS, and len.
Referenced by l2_ph_data_ind(), and rslms_rx_rll().
|
static |
References lapdm_datalink::dl, lapdm_datalink::entity, lapd_dl_init2(), lapdm_send_ph_data_req(), len, lapd_datalink::n200, lapd_datalink::n200_est_rel, N200_EST_REL, name, lapd_datalink::reestablish, lapd_datalink::send_dlsap, lapd_datalink::send_ph_data_req, send_rslms_dlsap(), lapd_datalink::t200_sec, lapd_datalink::t200_usec, lapd_datalink::t203_sec, lapd_datalink::t203_usec, update_pending_frames(), and lapd_datalink::update_pending_frames.
Referenced by lapdm_entity_init3().
void lapdm_entity_exit | ( | struct lapdm_entity * | le | ) |
flush and release all resoures in LAPDm entity
References ARRAY_SIZE, lapdm_datalink::dl, lapd_dl_exit(), and len.
Referenced by lapdm_channel_exit().
void lapdm_entity_init | ( | struct lapdm_entity * | le, |
enum lapdm_mode | mode, | ||
int | t200 | ||
) |
initialize a LAPDm entity and all datalinks inside
[in] | le | LAPDm entity |
[in] | mode | lapdm_mode (BTS/MS) |
[in] | t200 | T200 re-transmission timer for all SAPIs in seconds |
Don't use this function; It doesn't support different T200 values per API and doesn't permit the caller to specify the N200 counter, both of which are required by GSM specs and supported by lapdm_entity_init2().
References _NR_DL_SAPI, ARRAY_SIZE, lapdm_entity_init3(), len, mode, and N200.
void lapdm_entity_init2 | ( | struct lapdm_entity * | le, |
enum lapdm_mode | mode, | ||
const int * | t200_ms, | ||
int | n200 | ||
) |
initialize a LAPDm entity and all datalinks inside
[in] | le | LAPDm entity |
[in] | mode | lapdm_mode (BTS/MS) |
[in] | t200_ms | per-SAPI array of T200 re-transmission timer in milli-seconds |
[in] | n200 | N200 re-transmisison count |
References lapdm_entity_init3(), len, and mode.
void lapdm_entity_init3 | ( | struct lapdm_entity * | le, |
enum lapdm_mode | mode, | ||
const int * | t200_ms, | ||
int | n200, | ||
const char * | name_pfx | ||
) |
initialize a LAPDm entity and all datalinks inside
[in] | le | LAPDm entity |
[in] | mode | lapdm_mode (BTS/MS) |
[in] | t200_ms | per-SAPI array of T200 re-transmission timer in milli-seconds |
[in] | n200 | N200 re-transmisison count |
[in] | name | human-readable name (will be copied internally + extended with SAPI) |
References ARRAY_SIZE, lapdm_dl_init(), lapdm_entity_set_mode(), len, mode, and name.
Referenced by lapdm_channel_init3(), lapdm_entity_init(), and lapdm_entity_init2().
void lapdm_entity_reset | ( | struct lapdm_entity * | le | ) |
Reset an entire LAPDm entity and all its datalinks.
References ARRAY_SIZE, lapdm_datalink::dl, lapd_dl_reset(), and len.
Referenced by lapdm_channel_reset().
void lapdm_entity_set_flags | ( | struct lapdm_entity * | le, |
unsigned int | flags | ||
) |
Set the flags of a LAPDm entity.
Referenced by lapdm_channel_set_flags().
int lapdm_entity_set_mode | ( | struct lapdm_entity * | le, |
enum lapdm_mode | mode | ||
) |
Set the lapdm_mode of a LAPDm entity.
References ARRAY_SIZE, LAPD_MODE_NETWORK, LAPD_MODE_USER, lapd_set_mode(), LAPDM_MODE_BTS, LAPDM_MODE_MS, len, and mode.
Referenced by lapdm_channel_set_mode(), and lapdm_entity_init3().
References data, DLLAPD, GSM_MACBLOCK_PADDING, len, LOGL_ERROR, LOGP, and msg.
Referenced by lapdm_phsap_dequeue_prim(), and tx_ph_data_enqueue().
int lapdm_phsap_dequeue_prim | ( | struct lapdm_entity * | le, |
struct osmo_phsap_prim * | pp | ||
) |
dequeue a msg that's pending transmission via L1 and wrap it into a osmo_phsap_prim
References lapdm_pad_msgb(), len, msg, PRIM_OP_REQUEST, PRIM_PH_DATA, SAP_GSM_PH, tx_dequeue_acch_msgb(), and tx_dequeue_dcch_msgb().
Referenced by l2_ph_data_conf().
int lapdm_phsap_up | ( | struct osmo_prim_hdr * | oph, |
struct lapdm_entity * | le | ||
) |
Receive a PH-SAP primitive from L1.
References msgb::data, DLLAPD, l2_ph_chan_conf(), l2_ph_data_conf(), l2_ph_data_ind(), l2_ph_rach_ind(), len, LOGL_ERROR, LOGP, osmo_prim_hdr::msg, msgb_free(), osmo_prim_hdr::operation, osmo_phsap_prim::oph, PRIM_OP_CONFIRM, PRIM_OP_INDICATION, PRIM_PH_DATA, PRIM_PH_RACH, PRIM_PH_RTS, osmo_prim_hdr::primitive, osmo_prim_hdr::sap, and SAP_GSM_PH.
int lapdm_rslms_recvmsg | ( | struct msgb * | msg, |
struct lapdm_channel * | lc | ||
) |
Receive a RSLms Message buffers from Layer 3.
'msg' ownership is transferred, i.e. caller must not free it
References ABIS_RSL_MDISC_COM_CHAN, ABIS_RSL_MDISC_RLL, DLLAPD, len, LOGL_ERROR, LOGP, msg, msgb_free(), msgb_l2, rslms_rx_com_chan(), and rslms_rx_rll().
|
static |
References lapd_msg_ctx::format, LAPD_FORM_U, LAPD_U_SABM, LAPDM_MODE_BTS, LAPDM_MODE_MS, len, lapd_msg_ctx::length, RLL_CAUSE_SABM_INFO_NOTALL, lapd_msg_ctx::s_u, and lapd_msg_ctx::sapi.
Referenced by l2_ph_data_ind().
References lapdm_msg_ctx::chan_nr, container_of, lapd_msg_ctx::cr, lapd_msg_ctx::dl, lapdm_msg_ctx::dl, lapdm_datalink::dl, lapd_msg_ctx::format, LAPD_FORM_I, LAPD_FORM_S, LAPD_FORM_U, LAPDm_ADDR, LAPDm_CTRL_I, LAPDm_CTRL_S, LAPDm_CTRL_U, LAPDm_LEN, LAPDm_MORE, lapd_datalink::lctx, len, lapdm_msg_ctx::link_id, lapd_msg_ctx::lpd, lapd_msg_ctx::more, msg, msgb_free(), lapd_msg_ctx::n_recv, lapd_msg_ctx::n_send, lapd_msg_ctx::p_f, lapd_msg_ctx::s_u, lapd_msg_ctx::sapi, and tx_ph_data_enqueue().
Referenced by lapdm_dl_init().
References msg_type, RSL_MT_DATA_IND, RSL_MT_DATA_REQ, RSL_MT_UNIT_DATA_IND, and RSL_MT_UNIT_DATA_REQ.
Referenced by send_rll_simple(), and send_rslms_rll_l3().
|
static |
References cause, lapdm_msg_ctx::chan_nr, lapdm_msg_ctx::dl, lapdm_datalink::dl, lapdm_datalink::entity, lapdm_msg_ctx::link_id, LOGDL, LOGL_NOTICE, msg, msgb_tlv_put(), RSL_IE_RLM_CAUSE, RSL_MT_ERROR_IND, rsl_rll_simple(), and rslms_sendmsg().
Referenced by l2_ph_data_ind(), and send_rslms_dlsap().
References DLLAPD, len, LOGL_ERROR, LOGP, msg, msgb_free(), msgb_l2, PRIM_OP_REQUEST, PRIM_PH_RACH, RSL_IE_ACCESS_DELAY, RSL_IE_MS_POWER, RSL_IE_REQ_REFERENCE, and SAP_GSM_PH.
Referenced by rslms_rx_com_chan().
References DLLAPD, len, LOGL_ERROR, LOGL_NOTICE, LOGP, msg, msg_type, msgb_free(), msgb_l2, RSL_MT_CHAN_RQD, and rslms_rx_chan_rqd().
Referenced by lapdm_rslms_recvmsg().
References lapd_msg_ctx::dl, lapdm_datalink::dl, DLLAPD, lapdm_datalink_for_sapi(), LAPDM_MODE_BTS, lapd_datalink::lctx, len, LOGL_ERROR, LOGL_INFO, LOGL_NOTICE, LOGP, msg, msg_type, msgb_free(), msgb_l2, rsl_msg_name(), RSL_MT_DATA_REQ, RSL_MT_EST_REQ, RSL_MT_RECON_REQ, RSL_MT_REL_REQ, RSL_MT_RES_REQ, RSL_MT_SUSP_REQ, RSL_MT_UNIT_DATA_REQ, rslms_rx_rll_data_req(), rslms_rx_rll_est_req(), rslms_rx_rll_rel_req(), rslms_rx_rll_res_req(), rslms_rx_rll_susp_req(), and rslms_rx_rll_udata_req().
Referenced by lapdm_rslms_recvmsg().
References lapdm_datalink::dl, lapd_recv_dlsap(), lapd_datalink::lctx, len, length, LOGDL, LOGL_ERROR, msg, msgb_free(), msgb_l2, PRIM_DL_DATA, PRIM_OP_REQUEST, RSL_IE_L3_INFO, rsl_tlv_parse, TLVP_LEN, TLVP_PRESENT, and TLVP_VAL.
Referenced by rslms_rx_rll().
References chan_nr, lapdm_datalink::dl, lapd_recv_dlsap(), lapd_datalink::lctx, len, length, link_id, LOGDL, LOGL_ERROR, lapdm_datalink::mctx, msg, msgb_free(), msgb_l2, N201_AB_SACCH, N201_AB_SDCCH, PRIM_DL_EST, PRIM_OP_REQUEST, RSL_IE_L3_INFO, RSL_MT_REL_IND, rsl_tlv_parse, send_rll_simple(), set_lapdm_context(), TLVP_LEN, TLVP_PRESENT, and TLVP_VAL.
Referenced by rslms_rx_rll().
References lapdm_datalink::dl, lapd_recv_dlsap(), lapd_datalink::lctx, len, mode, msg, msgb_l2, PRIM_DL_REL, PRIM_OP_REQUEST, and RSL_IE_RELEASE_MODE.
Referenced by rslms_rx_rll().
References chan_nr, lapdm_datalink::dl, lapd_recv_dlsap(), lapd_datalink::lctx, len, length, link_id, LOGDL, LOGL_ERROR, lapdm_datalink::mctx, msg, msg_type, msgb_free(), msgb_l2, N201_AB_SACCH, N201_AB_SDCCH, PRIM_DL_RECON, PRIM_DL_RES, PRIM_OP_REQUEST, RSL_IE_L3_INFO, RSL_MT_REL_IND, RSL_MT_RES_REQ, rsl_tlv_parse, send_rll_simple(), set_lapdm_context(), TLVP_LEN, TLVP_PRESENT, and TLVP_VAL.
Referenced by rslms_rx_rll().
References lapdm_datalink::dl, lapd_recv_dlsap(), lapd_datalink::lctx, len, LOGDL, LOGL_ERROR, msg, msgb_free(), msgb_l2, PRIM_DL_SUSP, and PRIM_OP_REQUEST.
Referenced by rslms_rx_rll().
References chan_nr, lapd_cr_ent::cmd, lapd_datalink::cr, lapdm_datalink::dl, lapdm_datalink::entity, LAPDm_ADDR, LAPDm_CTRL_U, LAPDm_LEN, LAPDm_LPD_NORMAL, LAPDM_MODE_BTS, LAPDm_U_UI, len, length, link_id, lapd_datalink::loc2rem, LOGDL, LOGL_ERROR, LOGL_INFO, msg, msgb_free(), msgb_l2, RSL_IE_L3_INFO, RSL_IE_MS_POWER, RSL_IE_TIMING_ADVANCE, rsl_tlv_parse, TLVP_LEN, TLVP_PRESENT, TLVP_VAL, and tx_ph_data_enqueue().
Referenced by rslms_rx_rll().
References len, msg, and msgb_free().
Referenced by l2_ph_chan_conf(), l2_ph_rach_ind(), rsl_rll_error(), send_rll_simple(), send_rslms_rll_l3(), and send_rslms_rll_l3_ui().
|
static |
References lapdm_msg_ctx::chan_nr, lapdm_msg_ctx::dl, lapdm_datalink::entity, lapdm_msg_ctx::link_id, msg, msg_type, rsl_is_transparent(), rsl_rll_simple(), and rslms_sendmsg().
Referenced by rslms_rx_rll_est_req(), rslms_rx_rll_res_req(), and send_rslms_dlsap().
|
static |
References container_of, lapd_msg_ctx::dl, lapdm_msg_ctx::dl, lapdm_datalink::dl, lapd_datalink::lctx, len, LOGDL, LOGL_ERROR, msgb_free(), OSMO_PRIM, OSMO_PRIM_HDR, PRIM_DL_DATA, PRIM_DL_EST, PRIM_DL_REL, PRIM_DL_SUSP, PRIM_DL_UNIT_DATA, PRIM_MDL_ERROR, PRIM_OP_CONFIRM, PRIM_OP_INDICATION, RSL_MT_DATA_IND, RSL_MT_EST_CONF, RSL_MT_EST_IND, RSL_MT_REL_CONF, RSL_MT_REL_IND, RSL_MT_SUSP_CONF, rsl_rll_error(), send_rll_simple(), send_rslms_rll_l3(), and send_rslms_rll_l3_ui().
Referenced by lapdm_dl_init().
|
static |
References lapdm_msg_ctx::chan_nr, lapdm_msg_ctx::dl, lapdm_datalink::entity, lapdm_msg_ctx::link_id, msg, msg_type, rsl_is_transparent(), rsl_rll_push_l3(), and rslms_sendmsg().
Referenced by l2_ph_data_ind(), and send_rslms_dlsap().
References lapdm_msg_ctx::chan_nr, lapdm_msg_ctx::dl, lapdm_datalink::entity, lapdm_msg_ctx::lapdm_fmt, LAPDm_FMT_B4, len, lapdm_msg_ctx::link_id, msg, msgb_l3, msgb_tv16_push(), msgb_tv_push(), RSL_IE_L3_INFO, RSL_IE_MS_POWER, RSL_IE_TIMING_ADVANCE, RSL_MT_UNIT_DATA_IND, rsl_rll_push_hdr(), rslms_sendmsg(), lapdm_msg_ctx::ta_ind, and lapdm_msg_ctx::tx_power_ind.
Referenced by send_rslms_dlsap().
|
static |
References lapdm_msg_ctx::chan_nr, chan_nr, lapd_msg_ctx::dl, lapdm_msg_ctx::dl, lapdm_datalink::dl, lapd_datalink::lctx, len, lapdm_msg_ctx::link_id, link_id, lapdm_datalink::mctx, lapd_msg_ctx::n201, and lapd_msg_ctx::sapi.
Referenced by rslms_rx_rll_est_req(), and rslms_rx_rll_res_req().
|
static |
References ARRAY_SIZE, lapdm_datalink::dl, len, msg, msgb_dequeue(), n, and lapd_datalink::tx_queue.
Referenced by lapdm_phsap_dequeue_prim().
|
static |
References DL_SAPI0, DL_SAPI3, len, msg, and msgb_dequeue().
Referenced by lapdm_phsap_dequeue_prim().
|
static |
References chan_nr, lapdm_datalink::dl, lapdm_datalink::entity, LAPDM_ENT_F_POLLING_ONLY, lapdm_pad_msgb(), len, link_id, msg, msgb_enqueue(), PRIM_OP_REQUEST, PRIM_PH_DATA, SAP_GSM_PH, and lapd_datalink::tx_queue.
Referenced by lapdm_send_ph_data_req(), and rslms_rx_rll_udata_req().
|
static |
References lapd_msg_ctx::dl, LAPDm_CTRL_I, LAPDm_CTRL_I_Ns, LAPDm_CTRL_is_I, LAPDm_CTRL_is_S, LAPDm_CTRL_PF_BIT, lapd_datalink::lctx, msgb::list, llist_for_each_entry, LOGDL, LOGL_ERROR, msg, lapd_datalink::tx_queue, and lapd_datalink::v_recv.
Referenced by lapdm_dl_init().
const struct value_string osmo_ph_prim_names[] |
|
extern |
Referenced by lapd_dl_init2(), lapd_dl_set_name(), and lapdm_channel_init3().