libosmogsm
1.9.2
Osmocom GSM library
|
int lapdm_channel_set_mode(struct lapdm_channel *lc, enum lapdm_mode mode)
Set the lapdm_mode of a LAPDm channel.
Definition: lapdm.c:1445
uint8_t len
Definition: gsm_04_11.h:2
int(* osmo_prim_cb)(struct osmo_prim_hdr *oph, void *ctx)
@ LAPDm_FMT_B4
Definition: lapdm.c:111
int last_tx_dequeue
last entity that was dequeued
Definition: lapdm.h:54
static int l2_ph_data_ind(struct msgb *msg, struct lapdm_entity *le, uint8_t chan_nr, uint8_t link_id, uint32_t fn)
Definition: lapdm.c:702
gsm_chan_t
Definition: gsm_utils.h:235
@ RSL_IE_ACCESS_DELAY
Definition: gsm_08_58.h:313
uint32_t fn
GSM Frame Number at time of RA.
Definition: l1sap.h:64
#define LAPDm_CTRL_is_U(ctrl)
Definition: lapdm.c:69
#define TE42(i)
Definition: aes_i.h:84
Definition: gsm_04_08.h:697
#define OSMO_PRIM_HDR(oph)
static struct msgb * msgb_alloc_headroom(uint16_t size, uint16_t headroom, const char *name)
@ LAPDm_FMT_Bbis
Definition: lapdm.c:109
void aes_encrypt(void *ctx, const u8 *plain, u8 *crypt)
aes_encrypt - Encrypt one AES block @ctx: Context pointer from aes_encrypt_init() @plain: Plaintext d...
Definition: aes-internal-enc.c:114
#define LAPD_U_SABM
Definition: lapdm.c:47
uint8_t link_id
Definition: gsm_08_08.h:4
#define rsl_tlv_parse(dec, buf, len)
Parse RSL TLV structure using tlv_parse.
Definition: rsl.h:19
#define TE443(i)
Definition: aes_i.h:89
static void rijndaelEncrypt(const u32 rk[], const u8 pt[16], u8 ct[16])
Definition: aes-internal-enc.c:33
void lapdm_channel_set_flags(struct lapdm_channel *lc, unsigned int flags)
Set the flags of all LAPDm entities in a LAPDm channel.
Definition: lapdm.c:1500
#define RLL_CAUSE_SABM_INFO_NOTALL
Definition: gsm_08_58.h:591
static int rslms_rx_rll_udata_req(struct msgb *msg, struct lapdm_datalink *dl)
Definition: lapdm.c:1018
@ RSL_MT_REL_CONF
Definition: gsm_08_58.h:175
#define LAPDM_ENT_F_POLLING_ONLY
Definition: lapdm.h:48
primitive header for PH-SAP primitives
Definition: l1sap.h:158
@ LAPDM_MODE_MS
behave like a MS (mobile phone)
Definition: lapdm.h:13
#define TE421(i)
Definition: aes_i.h:87
enum lapdm_mode mode
are we in BTS mode or MS mode
Definition: lapdm.h:56
void * aes_decrypt_init(const u8 *key, size_t len)
static int rsl_rll_error(uint8_t cause, struct lapdm_msg_ctx *mctx)
Definition: lapdm.c:543
struct abis_rsl_common_hdr c
Definition: gsm_08_58.h:110
uint8_t tx_power
Definition: lapdm.h:69
uint8_t ra
Random Access.
Definition: l1sap.h:44
@ RSL_MT_SUSP_CONF
Definition: gsm_08_58.h:180
uint8_t cause
Definition: gsm_04_08.h:808
@ PRIM_PH_RACH
PH-RANDOM_ACCESS.
Definition: l1sap.h:10
#define LAPDm_CTRL_S(nr, s, p)
Definition: lapdm.c:64
struct osmo_prim_hdr oph
generic primitive header
Definition: l1sap.h:159
struct lapdm_entity lapdm_dcch
Dedicated Control Channel.
Definition: lapdm.h:77
#define LAPDm_U_UI
Definition: lapdm.c:83
write Write running configuration to or terminal n Write configuration to the copy running config startup Copy configuration n Copy running config to n Copy running config to startup write Write running configuration to or terminal n Write to terminal n
int lapdm_fmt
Definition: lapdm.h:22
const u32 Te0[256]
Definition: aes-internal.c:74
@ RSL_MT_REL_REQ
Definition: gsm_08_58.h:174
lapdm_format
Definition: lapdm.c:106
void lapdm_channel_reset(struct lapdm_channel *lc)
Reset a LAPDm channel with all its entities.
Definition: lapdm.c:1487
void * aes_encrypt_init(const u8 *key, size_t len)
aes_encrypt_init - Initialize AES for encryption @key: Encryption key @len: Key length in bytes (usua...
Definition: aes-internal-enc.c:101
static int lapdm_rx_not_permitted(const struct lapdm_entity *le, const struct lapd_msg_ctx *lctx)
Definition: lapdm.c:669
static void osmo_prim_init(struct osmo_prim_hdr *oph, unsigned int sap, unsigned int primitive, enum osmo_prim_operation operation, struct msgb *msg)
static unsigned char * msgb_put(struct msgb *msgb, unsigned int len)
uint32_t u32
Definition: common.h:25
int lapd_recv_dlsap(struct osmo_dlsap_prim *dp, struct lapd_msg_ctx *lctx)
#define PUTU32(ct, st)
Definition: aes_i.h:115
Definition: gsm_utils.h:41
@ RSL_MT_SUSP_REQ
Definition: gsm_08_58.h:179
static int rslms_sendmsg(struct msgb *msg, struct lapdm_entity *le)
Definition: lapdm.c:341
uint8_t ta_ind
Definition: lapdm.h:25
void lapd_dl_exit(struct lapd_datalink *dl)
@ RSL_MT_DATA_IND
Definition: gsm_08_58.h:169
#define LAPDm_CTRL_is_S(ctrl)
Definition: lapdm.c:68
uint8_t tx_power_ind
Definition: lapdm.h:26
void lapdm_channel_exit(struct lapdm_channel *lc)
Definition: lapdm.c:306
static int set_lapdm_context(struct lapdm_datalink *dl, uint8_t chan_nr, uint8_t link_id, int n201, uint8_t sapi)
Definition: lapdm.c:948
struct llist_head tx_queue
@ RSL_IE_REQ_REFERENCE
Definition: gsm_08_58.h:315
struct lapdm_msg_ctx mctx
context of established connection
Definition: lapdm.h:33
uint8_t acc_delay
Delay in bit periods.
Definition: l1sap.h:63
struct lapd_cr_ent loc2rem
#define TLVP_LEN(x, y)
Definition: tlv.h:557
void * l3_ctx
context for layer3 instance
Definition: lapdm.h:60
#define N201_Bbis
Definition: lapdm.c:89
uint8_t msg[0]
Definition: gsm_08_08.h:729
int lapd_set_mode(struct lapd_datalink *dl, enum lapd_mode mode)
void gsm_fn2gsmtime(struct gsm_time *time, uint32_t fn)
Parse GSM Frame Number into struct gsm_time.
Definition: gsm_utils.c:866
void aes_encrypt_deinit(void *ctx)
aes_encrypt_deinit - Deinitialize AES encryption @ctx: Context pointer from aes_encrypt_init()
Definition: aes-internal-enc.c:120
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
Definition: lapdm.c:420
void lapd_dl_reset(struct lapd_datalink *dl)
#define N200_TR_FACCH_HR
Definition: lapdm.c:102
static void osmo_talloc_replace_string(void *ctx, char **dst, const char *newstr)
unsigned int flags
Definition: lapdm.h:57
static int tx_ph_data_enqueue(struct lapdm_datalink *dl, struct msgb *msg, uint8_t chan_nr, uint8_t link_id, uint8_t pad)
Definition: lapdm.c:353
static int rslms_rx_rll(struct msgb *msg, struct lapdm_channel *lc)
Definition: lapdm.c:1265
void * aes_encrypt_init(const u8 *key, size_t len)
aes_encrypt_init - Initialize AES for encryption @key: Encryption key @len: Key length in bytes (usua...
Definition: aes-internal-enc.c:101
@ GSM_LCHAN_TCH_H
Definition: gsm_utils.h:239
static int update_pending_frames(struct lapd_msg_ctx *lctx)
Definition: lapdm.c:649
union osmo_phsap_prim::@20 u
request-specific data
@ RSL_MT_REL_IND
Definition: gsm_08_58.h:176
int lapdm_rslms_recvmsg(struct msgb *msg, struct lapdm_channel *lc)
Receive a RSLms Message buffers from Layer 3.
Definition: lapdm.c:1390
const u8 Td4s[256]
Definition: aes-internal.c:745
@ PRIM_MPH_INFO
MPH-INFO.
Definition: l1sap.h:14
uint16_t ra
Random Access.
Definition: l1sap.h:62
#define container_of(ptr, type, member)
static uint8_t * msgb_tv16_push(struct msgb *msg, uint8_t tag, uint16_t val)
push (prepend) a TV16 field to a Message buffers
Definition: tlv.h:453
struct gsm48_req_ref req_ref
Definition: gsm_04_08.h:811
@ PRIM_PH_RTS
PH-RTS.
Definition: l1sap.h:13
int lapdm_phsap_up(struct osmo_prim_hdr *oph, struct lapdm_entity *le)
Receive a PH-SAP primitive from L1.
Definition: lapdm.c:907
const char * rsl_msg_name(uint8_t err)
Get human-readable string for RSL Message Type.
Definition: rsl.c:405
void lapdm_entity_init(struct lapdm_entity *le, enum lapdm_mode mode, int t200) OSMO_DEPRECATED("Use lapdm_entity_init3() instead")
initialize a LAPDm entity and all datalinks inside
Definition: lapdm.c:159
uint8_t length
Definition: gsm_08_08.h:3
RSL common header.
Definition: gsm_08_58.h:75
#define GSM_MACBLOCK_PADDING
Definition: gsm_04_08.h:2241
int(* send_dlsap)(struct osmo_dlsap_prim *dp, struct lapd_msg_ctx *lctx)
static int rslms_rx_rll_data_req(struct msgb *msg, struct lapdm_datalink *dl)
Definition: lapdm.c:1090
static int l2_ph_chan_conf(struct msgb *msg, struct lapdm_entity *le, uint32_t frame_nr)
Definition: lapdm.c:1241
#define GETU32(pt)
Definition: aes_i.h:113
static int l2_ph_rach_ind(struct lapdm_entity *le, uint8_t ra, uint32_t fn, uint8_t acc_delay)
Definition: lapdm.c:875
the two lapdm_entities that form a GSM logical channel (ACCH + DCCH)
Definition: lapdm.h:73
@ DL_SAPI0
SAPI 0.
Definition: lapdm.h:40
#define LOGDL(dl, level, fmt, args...)
struct dl_rel_req_param rel_req
uint8_t link_id
Link Identifier (Like RSL)
Definition: l1sap.h:76
#define RLL_CAUSE_FRM_UNIMPL
Definition: gsm_08_58.h:589
enum osmo_prim_operation operation
static int rslms_rx_com_chan(struct msgb *msg, struct lapdm_channel *lc)
Definition: lapdm.c:1362
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
Definition: lapdm.c:259
static int l2_ph_data_conf(struct msgb *msg, struct lapdm_entity *le)
Definition: lapdm.c:455
#define os_free(x)
Definition: common.h:19
#define LAPDm_CTRL_S_BITS(ctrl)
Definition: lapdm.c:74
#define LAPDM_ENT_F_EMPTY_FRAME
Definition: lapdm.h:47
uint8_t t3
Definition: gsm_utils.h:45
static unsigned char * msgb_push(struct msgb *msgb, unsigned int len)
void aes_decrypt(void *ctx, const u8 *crypt, u8 *plain)
@ GSM_LCHAN_TCH_F
Definition: gsm_utils.h:238
uint8_t mode
Definition: gsm_04_08.h:690
Definition: gsm_08_58.h:82
@ PRIM_PH_EMPTY_FRAME
PH-EMPTY_FRAME.
Definition: l1sap.h:12
void rijndaelKeySetupEnc(u32 rk[], const u8 cipherKey[])
Expand the cipher key into the encryption key schedule.
Definition: aes-internal.c:789
uint8_t ta
Timing Advance.
Definition: l1sap.h:45
#define os_malloc(x)
Definition: common.h:18
static int rslms_rx_chan_rqd(struct lapdm_channel *lc, struct msgb *msg)
Definition: lapdm.c:1201
@ LAPDM_MODE_BTS
behave like a BTS (network)
Definition: lapdm.h:14
void rsl_rll_push_l3(struct msgb *msg, uint8_t msg_type, uint8_t chan_nr, uint8_t link_id, int transparent)
Wrap msgb in L3 Info IE and push a RSL RLL header.
Definition: rsl.c:548
const u8 rcons[]
Definition: aes-internal.c:779
#define N201_AB_SACCH
Definition: lapdm.c:86
#define N200_TR_FACCH_FR
Definition: lapdm.c:100
@ RSL_MT_RECON_REQ
Definition: gsm_08_58.h:182
int lapd_ph_data_ind(struct msgb *msg, struct lapd_msg_ctx *lctx)
void lapd_dl_init2(struct lapd_datalink *dl, uint8_t k, uint8_t v_range, int maxf, const char *name)
void msgb_free(struct msgb *m)
static int get_n200_dcch(enum gsm_chan_t chan_t)
Definition: lapdm.c:207
#define N201_Bter_SACCH
Definition: lapdm.c:90
static void lapdm_pad_msgb(struct msgb *msg, uint8_t n201)
Definition: lapdm.c:325
uint8_t data[0]
message payload data
Definition: gsm_08_58.h:116
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.
Definition: lapdm.c:1457
@ PRIM_PH_CONN
PH-CONNECT.
Definition: l1sap.h:11
#define LAPDm_ADDR_SAPI(addr)
Definition: lapdm.c:57
void rsl_init_cchan_hdr(struct abis_rsl_cchan_hdr *ch, uint8_t msg_type)
Initialize a RSL Common Channel header.
Definition: rsl.c:55
@ _NR_DL_SAPI
Definition: lapdm.h:42
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.
Definition: lapdm.c:1466
osmo_prim_cb l1_prim_cb
callback for sending prims to L1
Definition: lapdm.h:62
struct ph_data_param data
Definition: l1sap.h:161
static unsigned char * msgb_pull_to_l3(struct msgb *msg)
uint16_t t1
Definition: gsm_utils.h:43
int(* send_ph_data_req)(struct lapd_msg_ctx *lctx, struct msgb *msg)
static uint8_t * msgb_tlv_put(struct msgb *msg, uint8_t tag, uint8_t len, const uint8_t *val)
put (append) a TLV field to a Message buffers
Definition: tlv.h:366
int tx_pending
currently a pending frame not confirmed by L1
Definition: lapdm.h:55
uint8_t link_id
Definition: lapdm.h:24
struct msgb * rsl_rll_simple(uint8_t msg_type, uint8_t chan_nr, uint8_t link_id, int transparent)
Create msgb with RSL RLL header.
Definition: rsl.c:569
@ RSL_MT_DATA_REQ
Definition: gsm_08_58.h:168
@ RSL_IE_RLM_CAUSE
Definition: gsm_08_58.h:318
#define LAPDm_CTRL_U(u, p)
Definition: lapdm.c:65
void aes_encrypt_deinit(void *ctx)
aes_encrypt_deinit - Deinitialize AES encryption @ctx: Context pointer from aes_encrypt_init()
Definition: aes-internal-enc.c:120
#define ABIS_RSL_MDISC_RLL
Definition: gsm_08_58.h:149
void * l1_ctx
context for layer1 instance
Definition: lapdm.h:59
#define N200_TR_SDCCH
Definition: lapdm.c:99
a LAPDm Entity
Definition: lapdm.h:51
uint32_t fn
GSM Frame Number.
Definition: l1sap.h:78
#define LAPDm_MORE
Definition: lapdm.c:80
@ PRIM_TCH
TCH.
Definition: l1sap.h:15
@ LAPDm_FMT_B
Definition: lapdm.c:108
LAPDm datalink like TS 04.06 / Section 3.5.2.
Definition: lapdm.h:31
#define N200_EST_REL
Definition: lapdm.c:96
struct lapdm_datalink * lapdm_datalink_for_sapi(struct lapdm_entity *le, uint8_t sapi)
Definition: lapdm.c:312
uint16_t offset
Timing Offset.
Definition: l1sap.h:48
uint8_t u8
Definition: common.h:27
#define TLVP_PRESENT(x, y)
Definition: tlv.h:556
uint8_t chan_nr
Channel Number (Like RSL)
Definition: l1sap.h:77
#define N201_B4
Definition: lapdm.c:93
@ RSL_MT_UNIT_DATA_REQ
Definition: gsm_08_58.h:177
@ GSM_LCHAN_SDCCH
Definition: gsm_utils.h:237
static int rslms_rx_rll_susp_req(struct msgb *msg, struct lapdm_datalink *dl)
Definition: lapdm.c:1118
#define TE414(i)
Definition: aes_i.h:90
uint32_t fn
Definition: lapdm.h:27
@ PRIM_TCH_RTS
TCH.
Definition: l1sap.h:16
uint8_t chan_nr
Definition: gsm_08_58.h:86
const struct value_string osmo_ph_prim_names[]
Definition: lapdm.c:114
static int msgb_trim(struct msgb *msg, int len)
#define N201_Bter_SDCCH
Definition: lapdm.c:91
int(* update_pending_frames)(struct lapd_msg_ctx *lctx)
#define LAPDm_LPD_NORMAL
Definition: lapdm.c:50
#define LAPDm_CTRL_I_Ns(ctrl)
Definition: lapdm.c:76
static unsigned int msgb_l2len(const struct msgb *msgb)
uint8_t tx_power
Transmit Power.
Definition: l1sap.h:46
static __thread char namebuf[255]
void lapdm_entity_exit(struct lapdm_entity *le)
flush and release all resoures in LAPDm entity
Definition: lapdm.c:290
static struct msgb * tx_dequeue_acch_msgb(struct lapdm_entity *le)
Definition: lapdm.c:394
#define N200_TR_SACCH
Definition: lapdm.c:98
#define TE43(i)
Definition: aes_i.h:85
#define LAPDm_SAPI_SMS
Definition: lapdm.c:53
#define AES_PRIV_SIZE
Definition: aes_i.h:120
@ DL_SAPI3
SAPI 1.
Definition: lapdm.h:41
#define llist_for_each_entry(pos, head, member)
@ RSL_MT_CHAN_RQD
Definition: gsm_08_58.h:187
const u32 Td0[256]
Definition: aes-internal.c:407
@ LAPDm_FMT_A
Definition: lapdm.c:107
uint8_t msg_type
message type (abis_rsl_msgtype)
Definition: gsm_08_58.h:77
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
Definition: lapdm.c:245
#define LAPDm_CTRL_Nr(ctrl)
Definition: lapdm.c:77
lapdm_cb_t l3_cb
callback for sending stuff to L3
Definition: lapdm.h:63
static int send_rslms_rll_l3(uint8_t msg_type, struct lapdm_msg_ctx *mctx, struct msgb *msg)
Definition: lapdm.c:500
uint8_t chan_nr
Definition: lapdm.h:23
@ SAP_GSM_PH
Definition: prim.h:9
#define ABIS_RSL_MDISC_COM_CHAN
Definition: gsm_08_58.h:153
#define LAPDm_EL
Definition: lapdm.c:81
struct lapd_datalink::@3 cr
struct lapdm_datalink datalink[_NR_DL_SAPI]
the SAPIs of the LAPDm entity
Definition: lapdm.h:53
@ RSL_IE_L3_INFO
Definition: gsm_08_58.h:307
#define LAPDm_CTRL_I(nr, ns, p)
Definition: lapdm.c:63
struct ph_rach_ind_param rach_ind
Definition: l1sap.h:164
struct abis_rsl_common_hdr c
Definition: gsm_08_58.h:83
#define RCON(i)
Definition: aes_i.h:72
static int rsl_is_transparent(uint8_t msg_type)
Definition: lapdm.c:485
void aes_encrypt_deinit(void *ctx)
aes_encrypt_deinit - Deinitialize AES encryption @ctx: Context pointer from aes_encrypt_init()
Definition: aes-internal-enc.c:120
#define LAPDm_ADDR_SHORT_L2(addr)
Definition: lapdm.c:60
#define OSMO_PRIM(prim, op)
union osmo_dlsap_prim::@2 u
struct lapd_datalink dl
Definition: lapdm.h:32
#define RSL_CHAN_RACH
Definition: gsm_08_58.h:463
@ RSL_IE_TIMING_ADVANCE
Definition: gsm_08_58.h:320
uint8_t link_id
Definition: gsm_08_58.h:91
void lapdm_entity_reset(struct lapdm_entity *le)
Reset an entire LAPDm entity and all its datalinks.
Definition: lapdm.c:1475
struct lapd_datalink * dl
static int send_rll_simple(uint8_t msg_type, struct lapdm_msg_ctx *mctx)
Definition: lapdm.c:532
uint8_t chan_nr
Definition: gsm_04_08.h:248
#define LAPDm_ADDR_LPD(addr)
Definition: lapdm.c:56
void lapdm_entity_init2(struct lapdm_entity *le, enum lapdm_mode mode, const int *t200_ms, int n200) OSMO_DEPRECATED("Use lapdm_entity_init3() instead")
initialize a LAPDm entity and all datalinks inside
Definition: lapdm.c:177
#define LAPDm_CTRL_U_BITS(ctrl)
Definition: lapdm.c:71
@ RSL_MT_EST_CONF
Definition: gsm_08_58.h:172
struct lapdm_entity lapdm_acch
Associated Control Channel.
Definition: lapdm.h:76
uint8_t msg_discr
message discriminator (ABIS_RSL_MDISC_*)
Definition: gsm_08_58.h:76
void aes_encrypt(void *ctx, const u8 *plain, u8 *crypt)
aes_encrypt - Encrypt one AES block @ctx: Context pointer from aes_encrypt_init() @plain: Plaintext d...
Definition: aes-internal-enc.c:114
char * name
human-readable name
Definition: lapdm.h:75
#define TE432(i)
Definition: aes_i.h:88
static unsigned char * msgb_pull(struct msgb *msgb, unsigned int len)
@ RSL_MT_RES_REQ
Definition: gsm_08_58.h:181
uint8_t t2
Definition: gsm_utils.h:44
static struct msgb * tx_dequeue_dcch_msgb(struct lapdm_entity *le)
Definition: lapdm.c:381
void * aes_encrypt_init(const u8 *key, size_t len)
aes_encrypt_init - Initialize AES for encryption @key: Encryption key @len: Key length in bytes (usua...
Definition: aes-internal-enc.c:101
#define LOGP(ss, level, fmt, args...)
static int rslms_rx_rll_rel_req(struct msgb *msg, struct lapdm_datalink *dl)
Definition: lapdm.c:1175
uint8_t is_combined_ccch
Are we using a combined CCCH?
Definition: l1sap.h:47
void lapdm_entity_set_flags(struct lapdm_entity *le, unsigned int flags)
Set the flags of a LAPDm entity.
Definition: lapdm.c:1494
static uint8_t * msgb_tv_push(struct msgb *msg, uint8_t tag, uint8_t val)
push (prepend) a TV field to a Message buffers
Definition: tlv.h:444
int lapdm_entity_set_mode(struct lapdm_entity *le, enum lapdm_mode mode)
Set the lapdm_mode of a LAPDm entity.
Definition: lapdm.c:1419
#define LAPDm_LEN(len)
Definition: lapdm.c:79
struct ph_rach_req_param rach_req
Definition: l1sap.h:163
#define LAPDm_SAPI_NORMAL
Definition: lapdm.c:52
#define TE41(i)
Definition: aes_i.h:83
void lapdm_channel_init(struct lapdm_channel *lc, enum lapdm_mode mode) OSMO_DEPRECATED_OUTSIDE("Use lapdm_channel_init3() instead")
initialize a LAPDm channel and all its channels
Definition: lapdm.c:229
static int rslms_rx_rll_res_req(struct msgb *msg, struct lapdm_datalink *dl)
Definition: lapdm.c:1138
void rsl_rll_push_hdr(struct msgb *msg, uint8_t msg_type, uint8_t chan_nr, uint8_t link_id, int transparent)
Push a RSL RLL header onto an existing msgb.
Definition: rsl.c:526
static int rslms_rx_rll_est_req(struct msgb *msg, struct lapdm_datalink *dl)
Definition: lapdm.c:963
static int lapdm_send_ph_data_req(struct lapd_msg_ctx *lctx, struct msgb *msg)
Definition: lapdm.c:604
#define LAPDm_ADDR_EA(addr)
Definition: lapdm.c:59
@ RSL_MT_ERROR_IND
Definition: gsm_08_58.h:170
uint8_t msg_type
Definition: gsm_04_08.h:808
uint8_t ta
Definition: lapdm.h:68
@ RSL_IE_MS_POWER
Definition: gsm_08_58.h:309
struct msgb * msgb_dequeue(struct llist_head *queue)
@ PRIM_PH_DATA
PH-DATA.
Definition: l1sap.h:9
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
Definition: lapdm.c:190
#define LAPDm_ADDR_CR(addr)
Definition: lapdm.c:58
uint8_t data[0]
message payload data
Definition: gsm_08_58.h:94
@ LAPDm_FMT_Bter
Definition: lapdm.c:110
uint8_t chan_nr
Definition: gsm_08_58.h:113
#define TE44(i)
Definition: aes_i.h:86
void aes_decrypt_deinit(void *ctx)
static int send_rslms_dlsap(struct osmo_dlsap_prim *dp, struct lapd_msg_ctx *lctx)
Definition: lapdm.c:554
#define N201_AB_SDCCH
Definition: lapdm.c:87
void aes_encrypt(void *ctx, const u8 *plain, u8 *crypt)
aes_encrypt - Encrypt one AES block @ctx: Context pointer from aes_encrypt_init() @plain: Plaintext d...
Definition: aes-internal-enc.c:114
@ RSL_MT_EST_REQ
Definition: gsm_08_58.h:171
#define LAPDm_CTRL_PF_BIT(ctrl)
Definition: lapdm.c:72
Definition: gsm_08_58.h:109
@ RSL_IE_RELEASE_MODE
Definition: gsm_08_58.h:316
static void lapdm_dl_init(struct lapdm_datalink *dl, struct lapdm_entity *entity, int t200_ms, uint32_t n200, const char *name)
Definition: lapdm.c:133
LAPDm message context.
Definition: lapdm.h:20
lapdm_mode
LAPDm mode/role.
Definition: lapdm.h:12
@ RSL_MT_CHAN_CONF
Definition: gsm_08_58.h:192
#define LAPDm_ADDR(lpd, sapi, cr)
Definition: lapdm.c:54
static uint8_t * msgb_tv_fixed_put(struct msgb *msg, uint8_t tag, unsigned int len, const uint8_t *val)
put (append) a TVfixed field to a Message buffers
Definition: tlv.h:382
#define N200
Definition: lapdm.c:104
static int send_rslms_rll_l3_ui(struct lapdm_msg_ctx *mctx, struct msgb *msg)
Definition: lapdm.c:513
void msgb_enqueue(struct llist_head *queue, struct msgb *msg)
result of the TLV parser
Definition: tlv.h:532
@ RSL_MT_UNIT_DATA_IND
Definition: gsm_08_58.h:178
struct mdl_error_ind_param error_ind
struct lapdm_channel * lapdm_ch
pointer to lapdm_channel of which we're part
Definition: lapdm.h:66
int aes_128_encrypt_block(const u8 *key, const u8 *in, u8 *out)
aes_128_encrypt_block - Perform one AES 128-bit block operation @key: Key for AES @in: Input data (16...
Definition: aes-encblock.c:31
static uint8_t * msgb_tv_put(struct msgb *msg, uint8_t tag, uint8_t val)
put (append) a TV field to a Message buffers
Definition: tlv.h:374
#define LAPDm_CTRL_is_I(ctrl)
Definition: lapdm.c:67
#define TLVP_VAL(x, y)
Definition: tlv.h:558
struct lapdm_entity * entity
LAPDm entity we are part of.
Definition: lapdm.h:35
struct lapdm_datalink * dl
Definition: lapdm.h:21
int(* lapdm_cb_t)(struct msgb *msg, struct lapdm_entity *le, void *ctx)
Definition: lapdm.h:45
#define os_memset(x, y, z)
Definition: common.h:17
@ RSL_MT_EST_IND
Definition: gsm_08_58.h:173