diff options
Diffstat (limited to 'include/osmocom/gsm/lapd_core.h')
-rw-r--r-- | include/osmocom/gsm/lapd_core.h | 104 |
1 files changed, 52 insertions, 52 deletions
diff --git a/include/osmocom/gsm/lapd_core.h b/include/osmocom/gsm/lapd_core.h index 42ef417e..8d3a0f81 100644 --- a/include/osmocom/gsm/lapd_core.h +++ b/include/osmocom/gsm/lapd_core.h @@ -14,16 +14,16 @@ * primitive related stuff */ -/*! \brief LAPD related primitives (L2<->L3 SAP)*/ +/*! LAPD related primitives (L2<->L3 SAP)*/ enum osmo_dl_prim { - PRIM_DL_UNIT_DATA, /*!< \brief DL-UNIT-DATA */ - PRIM_DL_DATA, /*!< \brief DL-DATA */ - PRIM_DL_EST, /*!< \brief DL-ESTABLISH */ - PRIM_DL_REL, /*!< \brief DL-RLEEASE */ - PRIM_DL_SUSP, /*!< \brief DL-SUSPEND */ - PRIM_DL_RES, /*!< \brief DL-RESUME */ - PRIM_DL_RECON, /*!< \brief DL-RECONNECT */ - PRIM_MDL_ERROR, /*!< \brief MDL-ERROR */ + PRIM_DL_UNIT_DATA, /*!< DL-UNIT-DATA */ + PRIM_DL_DATA, /*!< DL-DATA */ + PRIM_DL_EST, /*!< DL-ESTABLISH */ + PRIM_DL_REL, /*!< DL-RLEEASE */ + PRIM_DL_SUSP, /*!< DL-SUSPEND */ + PRIM_DL_RES, /*!< DL-RESUME */ + PRIM_DL_RECON, /*!< DL-RECONNECT */ + PRIM_MDL_ERROR, /*!< MDL-ERROR */ }; /* Uses the same values as RLL, so no conversion for GSM is required. */ @@ -43,32 +43,32 @@ enum osmo_dl_prim { #define MDL_CAUSE_SABM_INFO_NOTALL 0x0e #define MDL_CAUSE_FRMR 0x0f -/*! \brief for MDL-ERROR.ind */ +/*! for MDL-ERROR.ind */ struct mdl_error_ind_param { - uint8_t cause; /*!< \brief generic cause value */ + uint8_t cause; /*!< generic cause value */ }; -/*! \brief for DL-REL.req */ +/*! for DL-REL.req */ struct dl_rel_req_param { - uint8_t mode; /*!< \brief release mode */ + uint8_t mode; /*!< release mode */ }; -/*! \brief primitive header for LAPD DL-SAP primitives */ +/*! primitive header for LAPD DL-SAP primitives */ struct osmo_dlsap_prim { - struct osmo_prim_hdr oph; /*!< \brief generic primitive header */ + struct osmo_prim_hdr oph; /*!< generic primitive header */ union { struct mdl_error_ind_param error_ind; struct dl_rel_req_param rel_req; - } u; /*!< \brief request-specific data */ + } u; /*!< request-specific data */ }; -/*! \brief LAPD mode/role */ +/*! LAPD mode/role */ enum lapd_mode { - LAPD_MODE_USER, /*!< \brief behave like user */ - LAPD_MODE_NETWORK, /*!< \brief behave like network */ + LAPD_MODE_USER, /*!< behave like user */ + LAPD_MODE_NETWORK, /*!< behave like network */ }; -/*! \brief LAPD state (Figure B.2/Q.921)*/ +/*! LAPD state (Figure B.2/Q.921)*/ enum lapd_state { LAPD_STATE_NULL = 0, LAPD_STATE_TEI_UNASS, @@ -81,7 +81,7 @@ enum lapd_state { LAPD_STATE_TIMER_RECOV, }; -/*! \brief LAPD message format (I / S / U) */ +/*! LAPD message format (I / S / U) */ enum lapd_format { LAPD_FORM_UKN = 0, LAPD_FORM_I, @@ -89,7 +89,7 @@ enum lapd_format { LAPD_FORM_U, }; -/*! \brief LAPD message context */ +/*! LAPD message context */ struct lapd_msg_ctx { struct lapd_datalink *dl; int n201; @@ -119,45 +119,45 @@ struct lapd_history { int more; /* if message is fragmented */ }; -/*! \brief LAPD datalink */ +/*! LAPD datalink */ struct lapd_datalink { int (*send_dlsap)(struct osmo_dlsap_prim *dp, struct lapd_msg_ctx *lctx); int (*send_ph_data_req)(struct lapd_msg_ctx *lctx, struct msgb *msg); int (*update_pending_frames)(struct lapd_msg_ctx *lctx); struct { - /*! \brief filled-in once we set the lapd_mode above */ + /*! filled-in once we set the lapd_mode above */ struct lapd_cr_ent loc2rem; struct lapd_cr_ent rem2loc; } cr; - enum lapd_mode mode; /*!< \brief current mode of link */ - int use_sabme; /*!< \brief use SABME instead of SABM */ - int reestablish; /*!< \brief enable reestablish support */ - int n200, n200_est_rel; /*!< \brief number of retranmissions */ - struct lapd_msg_ctx lctx; /*!< \brief LAPD context */ - int maxf; /*!< \brief maximum frame size (after defragmentation) */ - uint8_t k; /*!< \brief maximum number of unacknowledged frames */ - uint8_t v_range; /*!< \brief range of sequence numbers */ - uint8_t v_send; /*!< \brief seq nr of next I frame to be transmitted */ - uint8_t v_ack; /*!< \brief last frame ACKed by peer */ - uint8_t v_recv; /*!< \brief seq nr of next I frame expected to be received */ - uint32_t state; /*!< \brief LAPD state (\ref lapd_state) */ - int seq_err_cond; /*!< \brief condition of sequence error */ - uint8_t own_busy; /*!< \brief receiver busy on our side */ - uint8_t peer_busy; /*!< \brief receiver busy on remote side */ - int t200_sec, t200_usec; /*!< \brief retry timer (default 1 sec) */ - int t203_sec, t203_usec; /*!< \brief retry timer (default 10 secs) */ - struct osmo_timer_list t200; /*!< \brief T200 timer */ - struct osmo_timer_list t203; /*!< \brief T203 timer */ - uint8_t retrans_ctr; /*!< \brief re-transmission counter */ - struct llist_head tx_queue; /*!< \brief frames to L1 */ - struct llist_head send_queue; /*!< \brief frames from L3 */ - struct msgb *send_buffer; /*!< \brief current frame transmitting */ - int send_out; /*!< \brief how much was sent from send_buffer */ - struct lapd_history *tx_hist; /*!< \brief tx history structure array */ - uint8_t range_hist; /*!< \brief range of history buffer 2..2^n */ - struct msgb *rcv_buffer; /*!< \brief buffer to assemble the received message */ - struct msgb *cont_res; /*!< \brief buffer to store content resolution data on network side, to detect multiple phones on same channel */ + enum lapd_mode mode; /*!< current mode of link */ + int use_sabme; /*!< use SABME instead of SABM */ + int reestablish; /*!< enable reestablish support */ + int n200, n200_est_rel; /*!< number of retranmissions */ + struct lapd_msg_ctx lctx; /*!< LAPD context */ + int maxf; /*!< maximum frame size (after defragmentation) */ + uint8_t k; /*!< maximum number of unacknowledged frames */ + uint8_t v_range; /*!< range of sequence numbers */ + uint8_t v_send; /*!< seq nr of next I frame to be transmitted */ + uint8_t v_ack; /*!< last frame ACKed by peer */ + uint8_t v_recv; /*!< seq nr of next I frame expected to be received */ + uint32_t state; /*!< LAPD state (\ref lapd_state) */ + int seq_err_cond; /*!< condition of sequence error */ + uint8_t own_busy; /*!< receiver busy on our side */ + uint8_t peer_busy; /*!< receiver busy on remote side */ + int t200_sec, t200_usec; /*!< retry timer (default 1 sec) */ + int t203_sec, t203_usec; /*!< retry timer (default 10 secs) */ + struct osmo_timer_list t200; /*!< T200 timer */ + struct osmo_timer_list t203; /*!< T203 timer */ + uint8_t retrans_ctr; /*!< re-transmission counter */ + struct llist_head tx_queue; /*!< frames to L1 */ + struct llist_head send_queue; /*!< frames from L3 */ + struct msgb *send_buffer; /*!< current frame transmitting */ + int send_out; /*!< how much was sent from send_buffer */ + struct lapd_history *tx_hist; /*!< tx history structure array */ + uint8_t range_hist; /*!< range of history buffer 2..2^n */ + struct msgb *rcv_buffer; /*!< buffer to assemble the received message */ + struct msgb *cont_res; /*!< buffer to store content resolution data on network side, to detect multiple phones on same channel */ }; void lapd_dl_init(struct lapd_datalink *dl, uint8_t k, uint8_t v_range, |