5#include <osmocom/core/timer.h>
6#include <osmocom/core/msgb.h>
7#include <osmocom/gsm/prim.h>
30#define MDL_CAUSE_T200_EXPIRED 0x01
31#define MDL_CAUSE_REEST_REQ 0x02
32#define MDL_CAUSE_UNSOL_UA_RESP 0x03
33#define MDL_CAUSE_UNSOL_DM_RESP 0x04
34#define MDL_CAUSE_UNSOL_DM_RESP_MF 0x05
35#define MDL_CAUSE_UNSOL_SPRV_RESP 0x06
36#define MDL_CAUSE_SEQ_ERR 0x07
37#define MDL_CAUSE_UFRM_INC_PARAM 0x08
38#define MDL_CAUSE_SFRM_INC_PARAM 0x09
39#define MDL_CAUSE_IFRM_INC_MBITS 0x0a
40#define MDL_CAUSE_IFRM_INC_LEN 0x0b
41#define MDL_CAUSE_FRM_UNIMPL 0x0c
42#define MDL_CAUSE_SABM_MF 0x0d
43#define MDL_CAUSE_SABM_INFO_NOTALL 0x0e
44#define MDL_CAUSE_FRMR 0x0f
58 struct osmo_prim_hdr
oph;
75 LAPD_STATE_ASS_TEI_WAIT,
76 LAPD_STATE_EST_TEI_WAIT,
81 LAPD_STATE_TIMER_RECOV,
163void lapd_dl_init(
struct lapd_datalink *dl, uint8_t k, uint8_t v_range,
168int lapd_ph_data_ind(
struct msgb *msg,
struct lapd_msg_ctx *lctx);
int lapd_set_mode(struct lapd_datalink *dl, enum lapd_mode mode)
Set the lapdm_mode of a LAPDm entity.
Definition lapd_core.c:333
lapd_mode
LAPD mode/role.
Definition lapd_core.h:66
lapd_format
LAPD message format (I / S / U)
Definition lapd_core.h:85
osmo_dl_prim
LAPD related primitives (L2<->L3 SAP)
Definition lapd_core.h:18
lapd_state
LAPD state (Figure B.2/Q.921)
Definition lapd_core.h:72
@ LAPD_MODE_USER
behave like user
Definition lapd_core.h:67
@ LAPD_MODE_NETWORK
behave like network
Definition lapd_core.h:68
@ PRIM_DL_REL
DL-RLEEASE.
Definition lapd_core.h:22
@ PRIM_DL_RES
DL-RESUME.
Definition lapd_core.h:24
@ PRIM_DL_SUSP
DL-SUSPEND.
Definition lapd_core.h:23
@ PRIM_DL_EST
DL-ESTABLISH.
Definition lapd_core.h:21
@ PRIM_DL_DATA
DL-DATA.
Definition lapd_core.h:20
@ PRIM_DL_UNIT_DATA
DL-UNIT-DATA.
Definition lapd_core.h:19
@ PRIM_MDL_ERROR
MDL-ERROR.
Definition lapd_core.h:26
@ PRIM_DL_RECON
DL-RECONNECT.
Definition lapd_core.h:25
for DL-REL.req
Definition lapd_core.h:52
uint8_t mode
release mode
Definition lapd_core.h:53
Definition lapd_core.h:112
LAPD datalink.
Definition lapd_core.h:123
uint8_t peer_busy
receiver busy on remote side
Definition lapd_core.h:147
struct llist_head tx_queue
frames to L1
Definition lapd_core.h:153
struct osmo_timer_list t203
T203 timer.
Definition lapd_core.h:151
int seq_err_cond
condition of sequence error
Definition lapd_core.h:145
struct lapd_history * tx_hist
tx history structure array
Definition lapd_core.h:157
int use_sabme
use SABME instead of SABM
Definition lapd_core.h:134
uint8_t range_hist
range of history buffer 2..2^n
Definition lapd_core.h:158
int reestablish
enable reestablish support
Definition lapd_core.h:135
uint8_t v_ack
last frame ACKed by peer
Definition lapd_core.h:142
uint8_t own_busy
receiver busy on our side
Definition lapd_core.h:146
struct osmo_timer_list t200
T200 timer.
Definition lapd_core.h:150
int maxf
maximum frame size (after defragmentation)
Definition lapd_core.h:138
int t200_usec
retry timer (default 1 sec)
Definition lapd_core.h:148
uint8_t retrans_ctr
re-transmission counter
Definition lapd_core.h:152
struct msgb * cont_res
buffer to store content resolution data on network side, to detect multiple phones on same channel
Definition lapd_core.h:160
uint8_t v_send
seq nr of next I frame to be transmitted
Definition lapd_core.h:141
struct msgb * send_buffer
current frame transmitting
Definition lapd_core.h:155
int send_out
how much was sent from send_buffer
Definition lapd_core.h:156
uint8_t k
maximum number of unacknowledged frames
Definition lapd_core.h:139
struct lapd_msg_ctx lctx
LAPD context.
Definition lapd_core.h:137
enum lapd_mode mode
current mode of link
Definition lapd_core.h:133
uint32_t state
LAPD state (lapd_state)
Definition lapd_core.h:144
uint8_t v_recv
seq nr of next I frame expected to be received
Definition lapd_core.h:143
int n200_est_rel
number of retranmissions
Definition lapd_core.h:136
struct msgb * rcv_buffer
buffer to assemble the received message
Definition lapd_core.h:159
uint8_t v_range
range of sequence numbers
Definition lapd_core.h:140
int t203_usec
retry timer (default 10 secs)
Definition lapd_core.h:149
struct llist_head send_queue
frames from L3
Definition lapd_core.h:154
Definition lapd_core.h:117
LAPD message context.
Definition lapd_core.h:93
for MDL-ERROR.ind
Definition lapd_core.h:47
uint8_t cause
generic cause value
Definition lapd_core.h:48
primitive header for LAPD DL-SAP primitives
Definition lapd_core.h:57
union osmo_dlsap_prim::@067103373254254124345322346374066073223254331017 u
request-specific data
struct osmo_prim_hdr oph
generic primitive header
Definition lapd_core.h:58