libosmoisdn 1.9.0.197-fb8cd
Osmocom ISDN library
lapd_core.h File Reference

primitive related stuff More...

#include <stdint.h>
#include <osmocom/core/timer.h>
#include <osmocom/core/msgb.h>
#include <osmocom/gsm/prim.h>

Go to the source code of this file.

Data Structures

struct  mdl_error_ind_param
 for MDL-ERROR.ind More...
 
struct  dl_rel_req_param
 for DL-REL.req More...
 
struct  osmo_dlsap_prim
 primitive header for LAPD DL-SAP primitives More...
 
struct  lapd_msg_ctx
 LAPD message context. More...
 
struct  lapd_cr_ent
 
struct  lapd_history
 
struct  lapd_datalink
 LAPD datalink. More...
 

Macros

#define LOGDL(dl, level, fmt, args...)    LOGP(DLLAPD, level, "(%s) " fmt, (dl)->name, ## args)
 
#define MDL_CAUSE_T200_EXPIRED   0x01
 
#define MDL_CAUSE_REEST_REQ   0x02
 
#define MDL_CAUSE_UNSOL_UA_RESP   0x03
 
#define MDL_CAUSE_UNSOL_DM_RESP   0x04
 
#define MDL_CAUSE_UNSOL_DM_RESP_MF   0x05
 
#define MDL_CAUSE_UNSOL_SPRV_RESP   0x06
 
#define MDL_CAUSE_SEQ_ERR   0x07
 
#define MDL_CAUSE_UFRM_INC_PARAM   0x08
 
#define MDL_CAUSE_SFRM_INC_PARAM   0x09
 
#define MDL_CAUSE_IFRM_INC_MBITS   0x0a
 
#define MDL_CAUSE_IFRM_INC_LEN   0x0b
 
#define MDL_CAUSE_FRM_UNIMPL   0x0c
 
#define MDL_CAUSE_SABM_MF   0x0d
 
#define MDL_CAUSE_SABM_INFO_NOTALL   0x0e
 
#define MDL_CAUSE_FRMR   0x0f
 
#define LAPD_F_RTS   0x0001
 lapd_flags More...
 
#define LAPD_F_DROP_2ND_REJ   0x0002
 

Enumerations

enum  osmo_dl_prim {
  PRIM_DL_UNIT_DATA ,
  PRIM_DL_DATA ,
  PRIM_DL_EST ,
  PRIM_DL_REL ,
  PRIM_DL_SUSP ,
  PRIM_DL_RES ,
  PRIM_DL_RECON ,
  PRIM_MDL_ERROR
}
 LAPD related primitives (L2<->L3 SAP) More...
 
enum  lapd_mode {
  LAPD_MODE_USER ,
  LAPD_MODE_NETWORK
}
 LAPD mode/role. More...
 
enum  lapd_state {
  LAPD_STATE_NULL = 0 ,
  LAPD_STATE_TEI_UNASS ,
  LAPD_STATE_ASS_TEI_WAIT ,
  LAPD_STATE_EST_TEI_WAIT ,
  LAPD_STATE_IDLE ,
  LAPD_STATE_SABM_SENT ,
  LAPD_STATE_DISC_SENT ,
  LAPD_STATE_MF_EST ,
  LAPD_STATE_TIMER_RECOV
}
 LAPD state (Figure B.2/Q.921) More...
 
enum  lapd_t200_rts {
  LAPD_T200_RTS_OFF = 0 ,
  LAPD_T200_RTS_PENDING ,
  LAPD_T200_RTS_RUNNING
}
 LAPD T200 state in RTS mode. More...
 
enum  lapd_format {
  LAPD_FORM_UKN = 0 ,
  LAPD_FORM_I ,
  LAPD_FORM_S ,
  LAPD_FORM_U
}
 LAPD message format (I / S / U) More...
 

Functions

void lapd_dl_init (struct lapd_datalink *dl, uint8_t k, uint8_t v_range, int maxf)
 Initialize LAPD datalink instance and allocate history. More...
 
void lapd_dl_init2 (struct lapd_datalink *dl, uint8_t k, uint8_t v_range, int maxf, const char *name)
 Initialize LAPD datalink instance and allocate history. More...
 
void lapd_dl_set_name (struct lapd_datalink *dl, const char *name)
 
void lapd_dl_exit (struct lapd_datalink *dl)
 
void lapd_dl_reset (struct lapd_datalink *dl)
 
int lapd_dl_set_flags (struct lapd_datalink *dl, unsigned int flags)
 Set lapd_flags to change behaviour. More...
 
int lapd_set_mode (struct lapd_datalink *dl, enum lapd_mode mode)
 Set the lapdm_mode of a LAPDm entity. More...
 
int lapd_ph_data_ind (struct msgb *msg, struct lapd_msg_ctx *lctx)
 
int lapd_ph_rts_ind (struct lapd_msg_ctx *lctx)
 Enqueue next LAPD frame and run pending T200. More...
 
int lapd_recv_dlsap (struct osmo_dlsap_prim *dp, struct lapd_msg_ctx *lctx)
 
int lapd_t200_timeout (struct lapd_datalink *dl)
 Handle timeout condition of T200 in RTS mode. More...
 

Detailed Description

primitive related stuff