3 #include <osmocom/gsm/l1sap.h> 45 typedef int (*lapdm_cb_t)(
struct msgb *msg,
struct lapdm_entity *le,
void *ctx);
47 #define LAPDM_ENT_F_EMPTY_FRAME 0x0001 48 #define LAPDM_ENT_F_POLLING_ONLY 0x0002 74 struct llist_head list;
80 const char *get_rsl_name(
int value);
81 extern const char *lapdm_state_names[];
LAPDm message context.
Definition: lapdm.h:21
void lapdm_entity_set_flags(struct lapdm_entity *le, unsigned int flags)
Set the flags of a LAPDm entity.
Definition: lapdm.c:1285
struct lapdm_channel * lapdm_ch
pointer to lapdm_channel of which we're part
Definition: lapdm.h:66
behave like a MS (mobile phone)
Definition: lapdm.h:14
LAPDm datalink like TS 04.06 / Section 3.5.2.
Definition: lapdm.h:31
void lapdm_channel_reset(struct lapdm_channel *lc)
Reset a LAPDm channel with all its entities.
Definition: lapdm.c:1278
int tx_pending
currently a pending frame not confirmed by L1
Definition: lapdm.h:55
uint8_t chan_nr
RSL channel number (value)
Definition: gsm_08_58.h:106
void * l1_ctx
context for layer1 instance
Definition: lapdm.h:59
the two lapdm_entities that form a GSM logical channel (ACCH + DCCH)
Definition: lapdm.h:73
SAPI 0.
Definition: lapdm.h:40
uint8_t link_id
RSL link identifier (value)
Definition: gsm_08_58.h:108
void * l3_ctx
context for layer3 instance
Definition: lapdm.h:60
SAPI 1.
Definition: lapdm.h:41
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:1257
void lapdm_entity_exit(struct lapdm_entity *le)
flush and release all resoures in LAPDm entity
Definition: lapdm.c:164
int lapdm_rslms_recvmsg(struct msgb *msg, struct lapdm_channel *lc)
Receive a RSLms msgb from Layer 3.
Definition: lapdm.c:1182
int lapdm_phsap_up(struct osmo_prim_hdr *oph, struct lapdm_entity *le)
Receive a PH-SAP primitive from L1.
Definition: lapdm.c:703
void lapdm_entity_init(struct lapdm_entity *le, enum lapdm_mode mode, int t200)
initialize a LAPDm entity and all datalinks inside
Definition: lapdm.c:139
int lapdm_entity_set_mode(struct lapdm_entity *le, enum lapdm_mode mode)
Set the lapdm_mode of a LAPDm entity.
Definition: lapdm.c:1210
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:1248
LAPD datalink.
Definition: lapd_core.h:123
char * name
human-readable name
Definition: lapdm.h:75
behave like a BTS (network)
Definition: lapdm.h:15
void lapdm_entity_reset(struct lapdm_entity *le)
Reset an entire LAPDm entity and all its datalinks.
Definition: lapdm.c:1266
struct lapdm_entity * entity
LAPDm entity we are part of.
Definition: lapdm.h:35
osmo_prim_cb l1_prim_cb
callback for sending prims to L1
Definition: lapdm.h:62
lapdm_mode
LAPDm mode/role.
Definition: lapdm.h:13
int last_tx_dequeue
last entity that was dequeued
Definition: lapdm.h:54
void lapdm_channel_init(struct lapdm_channel *lc, enum lapdm_mode mode)
initialize a LAPDm channel and all its channels
Definition: lapdm.c:156
int lapdm_channel_set_mode(struct lapdm_channel *lc, enum lapdm_mode mode)
Set the lapdm_mode of a LAPDm channel.
Definition: lapdm.c:1236
lapdm_cb_t l3_cb
callback for sending stuff to L3
Definition: lapdm.h:63
lapdm_dl_sapi
LAPDm datalink SAPIs.
Definition: lapdm.h:39
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:1291
a LAPDm Entity
Definition: lapdm.h:51
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:280
primitive header for PH-SAP primitives
Definition: l1sap.h:112