diff options
Diffstat (limited to 'include/osmocom/gsm')
-rw-r--r-- | include/osmocom/gsm/a5.h | 4 | ||||
-rw-r--r-- | include/osmocom/gsm/abis_nm.h | 2 | ||||
-rw-r--r-- | include/osmocom/gsm/gsm_utils.h | 8 | ||||
-rw-r--r-- | include/osmocom/gsm/kasumi.h | 6 | ||||
-rw-r--r-- | include/osmocom/gsm/l1sap.h | 154 | ||||
-rw-r--r-- | include/osmocom/gsm/lapd_core.h | 104 | ||||
-rw-r--r-- | include/osmocom/gsm/lapdm.h | 52 | ||||
-rw-r--r-- | include/osmocom/gsm/oap.h | 6 | ||||
-rw-r--r-- | include/osmocom/gsm/protocol/gsm_04_08.h | 4 | ||||
-rw-r--r-- | include/osmocom/gsm/protocol/gsm_08_08.h | 6 | ||||
-rw-r--r-- | include/osmocom/gsm/protocol/gsm_08_58.h | 64 | ||||
-rw-r--r-- | include/osmocom/gsm/protocol/gsm_12_21.h | 108 | ||||
-rw-r--r-- | include/osmocom/gsm/rsl.h | 6 | ||||
-rw-r--r-- | include/osmocom/gsm/tlv.h | 118 |
14 files changed, 321 insertions, 321 deletions
diff --git a/include/osmocom/gsm/a5.h b/include/osmocom/gsm/a5.h index a2278f22..893fb026 100644 --- a/include/osmocom/gsm/a5.h +++ b/include/osmocom/gsm/a5.h @@ -32,10 +32,10 @@ */ /*! \file gsm/a5.h - * \brief Osmocom GSM A5 ciphering algorithm header + * Osmocom GSM A5 ciphering algorithm header */ -/*! \brief Converts a frame number into the 22 bit number used in A5/x +/*! Converts a frame number into the 22 bit number used in A5/x * \param[in] fn The true framenumber * \return 22 bit word */ diff --git a/include/osmocom/gsm/abis_nm.h b/include/osmocom/gsm/abis_nm.h index 14dbc08c..acddb7f4 100644 --- a/include/osmocom/gsm/abis_nm.h +++ b/include/osmocom/gsm/abis_nm.h @@ -36,7 +36,7 @@ const char *abis_nm_test_name(uint8_t test); extern const struct tlv_definition abis_nm_osmo_att_tlvdef; extern const struct tlv_definition abis_nm_att_tlvdef_ipa; -/*! \brief write a human-readable OML header to the debug log +/*! write a human-readable OML header to the debug log * \param[in] ss Logging sub-system * \param[in] foh A-bis OML FOM header */ diff --git a/include/osmocom/gsm/gsm_utils.h b/include/osmocom/gsm/gsm_utils.h index 1ffe5797..e76d9ee8 100644 --- a/include/osmocom/gsm/gsm_utils.h +++ b/include/osmocom/gsm/gsm_utils.h @@ -60,7 +60,7 @@ const char *gsm_band_name(enum gsm_band band); enum gsm_band gsm_band_parse(const char *mhz); /*! - * \brief Decode a sequence of GSM 03.38 encoded 7 bit characters. + * Decode a sequence of GSM 03.38 encoded 7 bit characters. * * \param decoded The destination buffer for the decoded characters. * \param n A maximum of n chars is written (incl. terminating \0). @@ -76,14 +76,14 @@ enum gsm_band gsm_band_parse(const char *mhz); int gsm_7bit_decode_n(char *decoded, size_t n, const uint8_t *user_data, uint8_t length); /*! - * \brief Decode a sequence of 7 bit characters (USSD encoding). + * Decode a sequence of 7 bit characters (USSD encoding). * * \see gsm_7bit_encode_n() */ int gsm_7bit_decode_n_ussd(char *decoded, size_t n, const uint8_t *user_data, uint8_t length); /*! - * \brief Encode a text string into GSM 03.38 encoded 7 bit characters. + * Encode a text string into GSM 03.38 encoded 7 bit characters. * * \param result The destination buffer for the packed 7 bit sequence. * \param n A maximum of n octets is written. @@ -97,7 +97,7 @@ int gsm_7bit_decode_n_ussd(char *decoded, size_t n, const uint8_t *user_data, ui int gsm_7bit_encode_n(uint8_t *result, size_t n, const char *data, int *octets_written); /*! - * \brief Encode a text string into GSM 03.38 encoded 7 bit characters (USSD encoding). + * Encode a text string into GSM 03.38 encoded 7 bit characters (USSD encoding). * * \see gsm_7bit_decode_n() */ diff --git a/include/osmocom/gsm/kasumi.h b/include/osmocom/gsm/kasumi.h index 8ecf65f6..222aece8 100644 --- a/include/osmocom/gsm/kasumi.h +++ b/include/osmocom/gsm/kasumi.h @@ -9,7 +9,7 @@ #include <stdint.h> -/*! \brief Single iteration of KASUMI cipher +/*! Single iteration of KASUMI cipher * \param[in] P Block, 64 bits to be processed in this round * \param[in] KLi1 Expanded subkeys * \param[in] KLi2 Expanded subkeys @@ -23,7 +23,7 @@ */ uint64_t _kasumi(uint64_t P, const uint16_t *KLi1, const uint16_t *KLi2, const uint16_t *KOi1, const uint16_t *KOi2, const uint16_t *KOi3, const uint16_t *KIi1, const uint16_t *KIi2, const uint16_t *KIi3); -/*! \brief Implementation of the KGCORE algorithm (used by A5/3, A5/4, GEA3, GEA4 and ECSD) +/*! Implementation of the KGCORE algorithm (used by A5/3, A5/4, GEA3, GEA4 and ECSD) * \param[in] CA * \param[in] cb * \param[in] cc @@ -34,7 +34,7 @@ uint64_t _kasumi(uint64_t P, const uint16_t *KLi1, const uint16_t *KLi2, const u */ void _kasumi_kgcore(uint8_t CA, uint8_t cb, uint32_t cc, uint8_t cd, const uint8_t *ck, uint8_t *co, uint16_t cl); -/*! \brief Expand key into set of subkeys - see TS 135 202 for details +/*! Expand key into set of subkeys - see TS 135 202 for details * \param[in] key (128 bits) as array of bytes * \param[out] KLi1 Expanded subkeys * \param[out] KLi2 Expanded subkeys diff --git a/include/osmocom/gsm/l1sap.h b/include/osmocom/gsm/l1sap.h index 183edbcb..322c7ec1 100644 --- a/include/osmocom/gsm/l1sap.h +++ b/include/osmocom/gsm/l1sap.h @@ -2,51 +2,51 @@ #include <osmocom/core/prim.h> -/*! \brief PH-SAP related primitives (L1<->L2 SAP) */ +/*! PH-SAP related primitives (L1<->L2 SAP) */ enum osmo_ph_prim { - PRIM_PH_DATA, /*!< \brief PH-DATA */ - PRIM_PH_RACH, /*!< \brief PH-RANDOM_ACCESS */ - PRIM_PH_CONN, /*!< \brief PH-CONNECT */ - PRIM_PH_EMPTY_FRAME, /*!< \brief PH-EMPTY_FRAME */ - PRIM_PH_RTS, /*!< \brief PH-RTS */ - PRIM_MPH_INFO, /*!< \brief MPH-INFO */ - PRIM_TCH, /*!< \brief TCH */ - PRIM_TCH_RTS, /*!< \brief TCH */ + PRIM_PH_DATA, /*!< PH-DATA */ + PRIM_PH_RACH, /*!< PH-RANDOM_ACCESS */ + PRIM_PH_CONN, /*!< PH-CONNECT */ + PRIM_PH_EMPTY_FRAME, /*!< PH-EMPTY_FRAME */ + PRIM_PH_RTS, /*!< PH-RTS */ + PRIM_MPH_INFO, /*!< MPH-INFO */ + PRIM_TCH, /*!< TCH */ + PRIM_TCH_RTS, /*!< TCH */ }; extern const struct value_string osmo_ph_prim_names[]; -/*! \brief PH-SAP related primitives (L1<->L2 SAP) */ +/*! PH-SAP related primitives (L1<->L2 SAP) */ enum osmo_mph_info_type { - PRIM_INFO_TIME, /*!< \brief Current GSM time */ - PRIM_INFO_MEAS, /*!< \brief Measurement indication */ - PRIM_INFO_ACTIVATE, /*!< \brief Activation of channel */ - PRIM_INFO_DEACTIVATE, /*!< \brief Deactivation of channel */ - PRIM_INFO_MODIFY, /*!< \brief Mode Modify of channel */ - PRIM_INFO_ACT_CIPH, /*!< \brief Activation of ciphering */ - PRIM_INFO_DEACT_CIPH, /*!< \brief Deactivation of ciphering */ + PRIM_INFO_TIME, /*!< Current GSM time */ + PRIM_INFO_MEAS, /*!< Measurement indication */ + PRIM_INFO_ACTIVATE, /*!< Activation of channel */ + PRIM_INFO_DEACTIVATE, /*!< Deactivation of channel */ + PRIM_INFO_MODIFY, /*!< Mode Modify of channel */ + PRIM_INFO_ACT_CIPH, /*!< Activation of ciphering */ + PRIM_INFO_DEACT_CIPH, /*!< Deactivation of ciphering */ }; -/*! \brief PH-DATA presence information */ +/*! PH-DATA presence information */ enum osmo_ph_pres_info_type { - PRES_INFO_INVALID = 0, /*!< \brief Data is invalid */ - PRES_INFO_HEADER = 1, /*!< \brief Only header is present and valid */ - PRES_INFO_FIRST = 3, /*!< \brief First half of data + header are valid (2nd half may be present but invalid) */ - PRES_INFO_SECOND = 5, /*!< \brief Second half of data + header are valid (1st halfmay be present but invalid) */ - PRES_INFO_BOTH = 7, /*!< \brief Both parts + header are present and valid */ + PRES_INFO_INVALID = 0, /*!< Data is invalid */ + PRES_INFO_HEADER = 1, /*!< Only header is present and valid */ + PRES_INFO_FIRST = 3, /*!< First half of data + header are valid (2nd half may be present but invalid) */ + PRES_INFO_SECOND = 5, /*!< Second half of data + header are valid (1st halfmay be present but invalid) */ + PRES_INFO_BOTH = 7, /*!< Both parts + header are present and valid */ PRES_INFO_UNKNOWN }; -/*! \brief for PH-RANDOM_ACCESS.req */ +/*! for PH-RANDOM_ACCESS.req */ struct ph_rach_req_param { - uint8_t ra; /*!< \brief Random Access */ - uint8_t ta; /*!< \brief Timing Advance */ - uint8_t tx_power; /*!< \brief Transmit Power */ - uint8_t is_combined_ccch;/*!< \brief Are we using a combined CCCH? */ - uint16_t offset; /*!< \brief Timing Offset */ + uint8_t ra; /*!< Random Access */ + uint8_t ta; /*!< Timing Advance */ + uint8_t tx_power; /*!< Transmit Power */ + uint8_t is_combined_ccch;/*!< Are we using a combined CCCH? */ + uint16_t offset; /*!< Timing Offset */ }; -/*! \brief for PH_RA_IND burstType inforamtion */ +/*! for PH_RA_IND burstType inforamtion */ enum ph_burst_type { GSM_L1_BURST_TYPE_NONE = 0, GSM_L1_BURST_TYPE_ACCESS_0, @@ -54,79 +54,79 @@ enum ph_burst_type { GSM_L1_BURST_TYPE_ACCESS_2 }; -/*! \brief for PH-RANDOM_ACCESS.ind */ +/*! for PH-RANDOM_ACCESS.ind */ struct ph_rach_ind_param { - uint8_t chan_nr; /*!< \brief Channel Number (Like RSL) */ - uint16_t ra; /*!< \brief Random Access */ - uint8_t acc_delay; /*!< \brief Delay in bit periods */ - uint32_t fn; /*!< \brief GSM Frame Number at time of RA */ - uint8_t is_11bit; /*!< \brief no.of bits in RACH*/ - enum ph_burst_type burst_type; /*!< \brief type of burst*/ + uint8_t chan_nr; /*!< Channel Number (Like RSL) */ + uint16_t ra; /*!< Random Access */ + uint8_t acc_delay; /*!< Delay in bit periods */ + uint32_t fn; /*!< GSM Frame Number at time of RA */ + uint8_t is_11bit; /*!< no.of bits in RACH*/ + enum ph_burst_type burst_type; /*!< type of burst*/ }; -/*! \brief for PH-[UNIT]DATA.{req,ind} | PH-RTS.ind */ +/*! for PH-[UNIT]DATA.{req,ind} | PH-RTS.ind */ struct ph_data_param { - uint8_t link_id; /*!< \brief Link Identifier (Like RSL) */ - uint8_t chan_nr; /*!< \brief Channel Number (Like RSL) */ - uint32_t fn; /*!< \brief GSM Frame Number */ - int8_t rssi; /*!< \brief RSSI of receivedindication */ - uint16_t ber10k; /*!< \brief BER in units of 0.01% */ - int16_t ta_offs_qbits; /* !< \brief Burst TA Offset in quarter bits */ - int16_t lqual_cb; /* !< \brief Link quality in centiBel */ - enum osmo_ph_pres_info_type pdch_presence_info; /*!< \brief Info regarding presence/validity of header and data parts */ + uint8_t link_id; /*!< Link Identifier (Like RSL) */ + uint8_t chan_nr; /*!< Channel Number (Like RSL) */ + uint32_t fn; /*!< GSM Frame Number */ + int8_t rssi; /*!< RSSI of receivedindication */ + uint16_t ber10k; /*!< BER in units of 0.01% */ + int16_t ta_offs_qbits; /* !< Burst TA Offset in quarter bits */ + int16_t lqual_cb; /* !< Link quality in centiBel */ + enum osmo_ph_pres_info_type pdch_presence_info; /*!< Info regarding presence/validity of header and data parts */ }; -/*! \brief for TCH.{req,ind} | TCH-RTS.ind */ +/*! for TCH.{req,ind} | TCH-RTS.ind */ struct ph_tch_param { - uint8_t chan_nr; /*!< \brief Channel Number (Like RSL) */ - uint32_t fn; /*!< \brief GSM Frame Number */ - int8_t rssi; /*!< \brief RSSI of received indication */ - uint8_t marker; /*!< \brief RTP Marker bit (speech onset indicator) */ + uint8_t chan_nr; /*!< Channel Number (Like RSL) */ + uint32_t fn; /*!< GSM Frame Number */ + int8_t rssi; /*!< RSSI of received indication */ + uint8_t marker; /*!< RTP Marker bit (speech onset indicator) */ }; -/*! \brief for PH-CONN.ind */ +/*! for PH-CONN.ind */ struct ph_conn_ind_param { - uint32_t fn; /*!< \brief GSM Frame Number */ + uint32_t fn; /*!< GSM Frame Number */ }; -/*! \brief for TIME MPH-INFO.ind */ +/*! for TIME MPH-INFO.ind */ struct info_time_ind_param { - uint32_t fn; /*!< \brief GSM Frame Number */ + uint32_t fn; /*!< GSM Frame Number */ }; -/*! \brief for MEAS MPH-INFO.ind */ +/*! for MEAS MPH-INFO.ind */ struct info_meas_ind_param { - uint8_t chan_nr; /*!< \brief Channel Number (Like RSL) */ - uint32_t fn; /*!< \brief GSM Frame Number */ - uint16_t ber10k; /*!< \brief BER in units of 0.01% */ - int16_t ta_offs_qbits; /*!< \brief timing advance offset (in qbits) */ - int16_t c_i_cb; /*!< \brief C/I ratio in 0.1 dB */ - uint8_t is_sub:1; /*!< \brief flags */ - uint8_t inv_rssi; /*!< \brief RSSI in dBm * -1 */ + uint8_t chan_nr; /*!< Channel Number (Like RSL) */ + uint32_t fn; /*!< GSM Frame Number */ + uint16_t ber10k; /*!< BER in units of 0.01% */ + int16_t ta_offs_qbits; /*!< timing advance offset (in qbits) */ + int16_t c_i_cb; /*!< C/I ratio in 0.1 dB */ + uint8_t is_sub:1; /*!< flags */ + uint8_t inv_rssi; /*!< RSSI in dBm * -1 */ }; -/*! \brief for {ACTIVATE,DEACTIVATE,MODIFY} MPH-INFO.req */ +/*! for {ACTIVATE,DEACTIVATE,MODIFY} MPH-INFO.req */ struct info_act_req_param { - uint8_t chan_nr; /*!< \brief Channel Number (Like RSL) */ + uint8_t chan_nr; /*!< Channel Number (Like RSL) */ uint8_t sacch_only; /*!< \breif Only deactivate SACCH */ }; -/*! \brief for {ACTIVATE,DEACTIVATE} MPH-INFO.cnf */ +/*! for {ACTIVATE,DEACTIVATE} MPH-INFO.cnf */ struct info_act_cnf_param { - uint8_t chan_nr; /*!< \brief Channel Number (Like RSL) */ - uint8_t cause; /*!< \brief RSL cause in case of nack */ + uint8_t chan_nr; /*!< Channel Number (Like RSL) */ + uint8_t cause; /*!< RSL cause in case of nack */ }; -/*! \brief for {ACTIVATE,DEACTIVATE} MPH-INFO.{req,cnf} */ +/*! for {ACTIVATE,DEACTIVATE} MPH-INFO.{req,cnf} */ struct info_ciph_req_param { - uint8_t chan_nr; /*!< \brief Channel Number (Like RSL) */ - uint8_t downlink; /*!< \brief Apply to downlink */ - uint8_t uplink; /*!< \brief Apply to uplink */ + uint8_t chan_nr; /*!< Channel Number (Like RSL) */ + uint8_t downlink; /*!< Apply to downlink */ + uint8_t uplink; /*!< Apply to uplink */ }; -/*! \brief for MPH-INFO.ind */ +/*! for MPH-INFO.ind */ struct mph_info_param { - enum osmo_mph_info_type type; /*!< \brief Info message type */ + enum osmo_mph_info_type type; /*!< Info message type */ union { struct info_time_ind_param time_ind; struct info_meas_ind_param meas_ind; @@ -136,9 +136,9 @@ struct mph_info_param { } u; }; -/*! \brief primitive header for PH-SAP primitives */ +/*! primitive header for PH-SAP primitives */ struct osmo_phsap_prim { - struct osmo_prim_hdr oph; /*!< \brief generic primitive header */ + struct osmo_prim_hdr oph; /*!< generic primitive header */ union { struct ph_data_param data; struct ph_tch_param tch; @@ -146,5 +146,5 @@ struct osmo_phsap_prim { struct ph_rach_ind_param rach_ind; struct ph_conn_ind_param conn_ind; struct mph_info_param info; - } u; /*!< \brief request-specific data */ + } u; /*!< request-specific data */ }; 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, diff --git a/include/osmocom/gsm/lapdm.h b/include/osmocom/gsm/lapdm.h index 84d109d5..ec14cddc 100644 --- a/include/osmocom/gsm/lapdm.h +++ b/include/osmocom/gsm/lapdm.h @@ -9,15 +9,15 @@ /*! \file lapdm.h */ -/*! \brief LAPDm mode/role */ +/*! LAPDm mode/role */ enum lapdm_mode { - LAPDM_MODE_MS, /*!< \brief behave like a MS (mobile phone) */ - LAPDM_MODE_BTS, /*!< \brief behave like a BTS (network) */ + LAPDM_MODE_MS, /*!< behave like a MS (mobile phone) */ + LAPDM_MODE_BTS, /*!< behave like a BTS (network) */ }; struct lapdm_entity; -/*! \brief LAPDm message context */ +/*! LAPDm message context */ struct lapdm_msg_ctx { struct lapdm_datalink *dl; int lapdm_fmt; @@ -27,18 +27,18 @@ struct lapdm_msg_ctx { uint8_t tx_power_ind; /* MS power indicated by network */ }; -/*! \brief LAPDm datalink like TS 04.06 / Section 3.5.2 */ +/*! LAPDm datalink like TS 04.06 / Section 3.5.2 */ struct lapdm_datalink { - struct lapd_datalink dl; /* \brief common LAPD */ - struct lapdm_msg_ctx mctx; /*!< \brief context of established connection */ + struct lapd_datalink dl; /* common LAPD */ + struct lapdm_msg_ctx mctx; /*!< context of established connection */ - struct lapdm_entity *entity; /*!< \brief LAPDm entity we are part of */ + struct lapdm_entity *entity; /*!< LAPDm entity we are part of */ }; -/*! \brief LAPDm datalink SAPIs */ +/*! LAPDm datalink SAPIs */ enum lapdm_dl_sapi { - DL_SAPI0 = 0, /*!< \brief SAPI 0 */ - DL_SAPI3 = 1, /*!< \brief SAPI 1 */ + DL_SAPI0 = 0, /*!< SAPI 0 */ + DL_SAPI3 = 1, /*!< SAPI 1 */ _NR_DL_SAPI }; @@ -47,34 +47,34 @@ typedef int (*lapdm_cb_t)(struct msgb *msg, struct lapdm_entity *le, void *ctx); #define LAPDM_ENT_F_EMPTY_FRAME 0x0001 #define LAPDM_ENT_F_POLLING_ONLY 0x0002 -/*! \brief a LAPDm Entity */ +/*! a LAPDm Entity */ struct lapdm_entity { - /*! \brief the SAPIs of the LAPDm entity */ + /*! the SAPIs of the LAPDm entity */ struct lapdm_datalink datalink[_NR_DL_SAPI]; - int last_tx_dequeue; /*!< \brief last entity that was dequeued */ - int tx_pending; /*!< \brief currently a pending frame not confirmed by L1 */ - enum lapdm_mode mode; /*!< \brief are we in BTS mode or MS mode */ + int last_tx_dequeue; /*!< last entity that was dequeued */ + int tx_pending; /*!< currently a pending frame not confirmed by L1 */ + enum lapdm_mode mode; /*!< are we in BTS mode or MS mode */ unsigned int flags; - void *l1_ctx; /*!< \brief context for layer1 instance */ - void *l3_ctx; /*!< \brief context for layer3 instance */ + void *l1_ctx; /*!< context for layer1 instance */ + void *l3_ctx; /*!< context for layer3 instance */ - osmo_prim_cb l1_prim_cb;/*!< \brief callback for sending prims to L1 */ - lapdm_cb_t l3_cb; /*!< \brief callback for sending stuff to L3 */ + osmo_prim_cb l1_prim_cb;/*!< callback for sending prims to L1 */ + lapdm_cb_t l3_cb; /*!< callback for sending stuff to L3 */ - /*! \brief pointer to \ref lapdm_channel of which we're part */ + /*! pointer to \ref lapdm_channel of which we're part */ struct lapdm_channel *lapdm_ch; uint8_t ta; /* TA used and indicated to network */ uint8_t tx_power; /* MS power used and indicated to network */ }; -/*! \brief the two lapdm_entities that form a GSM logical channel (ACCH + DCCH) */ +/*! the two lapdm_entities that form a GSM logical channel (ACCH + DCCH) */ struct lapdm_channel { - struct llist_head list; /*!< \brief internal linked list */ - char *name; /*!< \brief human-readable name */ - struct lapdm_entity lapdm_acch; /*!< \brief Associated Control Channel */ - struct lapdm_entity lapdm_dcch; /*!< \brief Dedicated Control Channel */ + struct llist_head list; /*!< internal linked list */ + char *name; /*!< human-readable name */ + struct lapdm_entity lapdm_acch; /*!< Associated Control Channel */ + struct lapdm_entity lapdm_dcch; /*!< Dedicated Control Channel */ }; const char *get_rsl_name(int value); diff --git a/include/osmocom/gsm/oap.h b/include/osmocom/gsm/oap.h index ff561bf1..fba22c78 100644 --- a/include/osmocom/gsm/oap.h +++ b/include/osmocom/gsm/oap.h @@ -26,7 +26,7 @@ #include <osmocom/core/msgb.h> #include <osmocom/gsm/protocol/gsm_04_08_gprs.h> -/*! \brief Information Element Identifiers for OAP IEs. +/*! Information Element Identifiers for OAP IEs. * They match osmo_gsup_iei (so far). */ enum osmo_oap_iei { OAP_CAUSE_IE = 0x02, @@ -37,7 +37,7 @@ enum osmo_oap_iei { OAP_CLIENT_ID_IE = 0x30, }; -/*! \brief OAP message types */ +/*! OAP message types */ enum osmo_oap_message_type { OAP_MSGT_REGISTER_REQUEST = 0b00000100, OAP_MSGT_REGISTER_ERROR = 0b00000101, @@ -52,7 +52,7 @@ enum osmo_oap_message_type { OAP_MSGT_SYNC_RESULT = 0b00001110, }; -/*! \brief Parsed/decoded OAP protocol message */ +/*! Parsed/decoded OAP protocol message */ struct osmo_oap_message { enum osmo_oap_message_type message_type; enum gsm48_gmm_cause cause; diff --git a/include/osmocom/gsm/protocol/gsm_04_08.h b/include/osmocom/gsm/protocol/gsm_04_08.h index 604a5df4..90b6cf15 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08.h +++ b/include/osmocom/gsm/protocol/gsm_04_08.h @@ -957,7 +957,7 @@ static inline uint8_t gsm48_hdr_trans_id(const struct gsm48_hdr *hdr) #define GSM48_TA_INVALID 220 -/*! \brief Check if TA is valid according to 3GPP TS 44.018 § 10.5.2.40 +/*! Check if TA is valid according to 3GPP TS 44.018 § 10.5.2.40 * \param[in] ta Timing Advance value * \returns true if ta is valid, false otherwise * Note: Rules for GSM400 band are ignored as it's not implemented in practice. @@ -1620,7 +1620,7 @@ enum gsm48_bcap_modem_type { GSM48_BCAP_MT_AUTO_1 = 8, }; -/*! \brief GSM 04.08 Bearer Capability: Speech Version Indication +/*! GSM 04.08 Bearer Capability: Speech Version Indication * (See also 3GPP TS 24.008, Table 10.5.103) */ enum gsm48_bcap_speech_ver { GSM48_BCAP_SV_FR = 0, /*!< GSM FR V1 (GSM FR) */ diff --git a/include/osmocom/gsm/protocol/gsm_08_08.h b/include/osmocom/gsm/protocol/gsm_08_08.h index d1653309..6ae6855c 100644 --- a/include/osmocom/gsm/protocol/gsm_08_08.h +++ b/include/osmocom/gsm/protocol/gsm_08_08.h @@ -391,7 +391,7 @@ enum gsm0808_chan_rate_type_speech { GSM0808_SPEECH_PERM_NO_CHANGE = 0x1f, }; -/*! \brief GSM 08.08 3.2.2.11 Channel Type +/*! GSM 08.08 3.2.2.11 Channel Type * (see also 3GPP TS 48.008, section 3.2.2.11) */ enum gsm0808_permitted_speech { GSM0808_PERM_FR1 = 0x01, /*!< GSM FR */ @@ -406,7 +406,7 @@ enum gsm0808_permitted_speech { GSM0808_PERM_HR6 = 0x45, /*!< OHR AMR */ }; -/*! \brief 3GPP TS 48.008, 3.2.2.103 Speech Codec Type */ +/*! 3GPP TS 48.008, 3.2.2.103 Speech Codec Type */ enum gsm0808_speech_codec_type { GSM0808_SCT_FR1 = 0x0, /*!< GSM FR */ GSM0808_SCT_FR2 = 0x2, /*!< GSM EFR */ @@ -449,7 +449,7 @@ struct gsm0808_speech_codec { uint16_t cfg; }; -/*! \brief Default speech codec configurations: Some codecs specified with +/*! Default speech codec configurations: Some codecs specified with * struct gsm0808_speech_codec, require a configuration (cfg). The following * default configuration will configure the codec (RTP) to match the * configuration that is used on the air interface (Um). diff --git a/include/osmocom/gsm/protocol/gsm_08_58.h b/include/osmocom/gsm/protocol/gsm_08_58.h index a7a2ccfd..c76cf3b1 100644 --- a/include/osmocom/gsm/protocol/gsm_08_58.h +++ b/include/osmocom/gsm/protocol/gsm_08_58.h @@ -30,59 +30,59 @@ /*! \file gsm_08_58.h */ -/*! \brief RSL common header */ +/*! RSL common header */ struct abis_rsl_common_hdr { - uint8_t msg_discr; /*!< \brief message discriminator (ABIS_RSL_MDISC_*) */ - uint8_t msg_type; /*!< \brief message type (\ref abis_rsl_msgtype) */ - uint8_t data[0]; /*!< \brief actual payload data */ + uint8_t msg_discr; /*!< message discriminator (ABIS_RSL_MDISC_*) */ + uint8_t msg_type; /*!< message type (\ref abis_rsl_msgtype) */ + uint8_t data[0]; /*!< actual payload data */ } __attribute__ ((packed)); -/* \brief RSL RLL header (Chapter 8.3) */ +/* RSL RLL header (Chapter 8.3) */ struct abis_rsl_rll_hdr { struct abis_rsl_common_hdr c; - uint8_t ie_chan; /*!< \brief \ref RSL_IE_CHAN_NR (tag) */ - uint8_t chan_nr; /*!< \brief RSL channel number (value) */ - uint8_t ie_link_id; /*!< \brief \ref RSL_IE_LINK_IDENT (tag) */ - uint8_t link_id; /*!< \brief RSL link identifier (value) */ - uint8_t data[0]; /*!< \brief message payload data */ + uint8_t ie_chan; /*!< \ref RSL_IE_CHAN_NR (tag) */ + uint8_t chan_nr; /*!< RSL channel number (value) */ + uint8_t ie_link_id; /*!< \ref RSL_IE_LINK_IDENT (tag) */ + uint8_t link_id; /*!< RSL link identifier (value) */ + uint8_t data[0]; /*!< message payload data */ } __attribute__ ((packed)); -/* \brief RSL Dedicated Channel header (Chapter 8.3 and 8.4) */ +/* RSL Dedicated Channel header (Chapter 8.3 and 8.4) */ struct abis_rsl_dchan_hdr { struct abis_rsl_common_hdr c; - uint8_t ie_chan; /*!< \brief \ref RSL_IE_CHAN_NR (tag) */ - uint8_t chan_nr; /*!< \brief RSL channel number (value) */ - uint8_t data[0]; /*!< \brief message payload data */ + uint8_t ie_chan; /*!< \ref RSL_IE_CHAN_NR (tag) */ + uint8_t chan_nr; /*!< RSL channel number (value) */ + uint8_t data[0]; /*!< message payload data */ } __attribute__ ((packed)); -/* \brief RSL Common Channel header (Chapter 8.5) */ +/* RSL Common Channel header (Chapter 8.5) */ struct abis_rsl_cchan_hdr { struct abis_rsl_common_hdr c; - uint8_t ie_chan; /*!< \brief \ref RSL_IE_CHAN_NR (tag) */ - uint8_t chan_nr; /*!< \brief RSL channel number (value) */ - uint8_t data[0]; /*!< \brief message payload data */ + uint8_t ie_chan; /*!< \ref RSL_IE_CHAN_NR (tag) */ + uint8_t chan_nr; /*!< RSL channel number (value) */ + uint8_t data[0]; /*!< message payload data */ } __attribute__ ((packed)); /* Chapter 9.1 */ -/* \brief RSL Message Discriminator: RLL */ +/* RSL Message Discriminator: RLL */ #define ABIS_RSL_MDISC_RLL 0x02 -/* \brief RSL Message Discriminator: Dedicated Channel */ +/* RSL Message Discriminator: Dedicated Channel */ #define ABIS_RSL_MDISC_DED_CHAN 0x08 -/* \brief RSL Message Discriminator: Common Channel */ +/* RSL Message Discriminator: Common Channel */ #define ABIS_RSL_MDISC_COM_CHAN 0x0c -/* \brief RSL Message Discriminator: TRX Management */ +/* RSL Message Discriminator: TRX Management */ #define ABIS_RSL_MDISC_TRX 0x10 -/* \brief RSL Message Discriminator: Location Service */ +/* RSL Message Discriminator: Location Service */ #define ABIS_RSL_MDISC_LOC 0x20 -/* \brief RSL Message Discriminator: ip.access */ +/* RSL Message Discriminator: ip.access */ #define ABIS_RSL_MDISC_IPACCESS 0x7e #define ABIS_RSL_MDISC_TRANSP 0x01 -/* \brief Check if given RSL message discriminator is transparent */ +/* Check if given RSL message discriminator is transparent */ #define ABIS_RSL_MDISC_IS_TRANSP(x) (x & 0x01) -/* \brief RSL Message Type (Chapter 9.1) */ +/* RSL Message Type (Chapter 9.1) */ enum abis_rsl_msgtype { /* Radio Link Layer Management */ RSL_MT_DATA_REQ = 0x01, @@ -182,7 +182,7 @@ enum abis_rsl_msgtype { RSL_MT_IPAC_DLCX_NACK, }; -/*! \brief Siemens vendor-specific RSL message types */ +/*! Siemens vendor-specific RSL message types */ enum abis_rsl_msgtype_siemens { RSL_MT_SIEMENS_MRPCI = 0x41, RSL_MT_SIEMENS_INTRAC_HO_COND_IND = 0x42, @@ -202,7 +202,7 @@ enum abis_rsl_msgtype_siemens { RSL_MT_SIEMENS_MODIF_COND_IND = 0x50, }; -/*! \brief RSL Information Element Identifiers (Chapter 9.3) */ +/*! RSL Information Element Identifiers (Chapter 9.3) */ enum abis_rsl_ie { RSL_IE_CHAN_NR = 0x01, RSL_IE_LINK_IDENT, @@ -340,7 +340,7 @@ enum abis_rsl_ie { #define RSL_ACT_SECOND_MULTI 0x05 #define RSL_ACT_OSMO_PDCH 0x0f /*< non-standard, for dyn TS */ -/*! \brief RSL Channel Mode IF (Chapter 9.3.6) */ +/*! RSL Channel Mode IF (Chapter 9.3.6) */ struct rsl_ie_chan_mode { uint8_t dtx_dtu; uint8_t spd_ind; @@ -383,7 +383,7 @@ enum rsl_cmod_spd { #define RSL_CMOD_CSD_T_600 0x14 #define RSL_CMOD_CSD_T_1200_75 0x15 -/*! \brief RSL Channel Identification IE (Chapter 9.3.5) */ +/*! RSL Channel Identification IE (Chapter 9.3.5) */ struct rsl_ie_chan_ident { /* GSM 04.08 10.5.2.5 */ struct { @@ -496,7 +496,7 @@ struct rsl_ie_chan_ident { #define RSL_CHANNEED_TCH_F 0x02 #define RSL_CHANNEED_TCH_ForH 0x03 -/*! \brief RSL Cell Broadcast Command (Chapter 9.3.45) */ +/*! RSL Cell Broadcast Command (Chapter 9.3.45) */ struct rsl_ie_cb_cmd_type { uint8_t last_block:2; uint8_t spare:1; @@ -603,7 +603,7 @@ enum rsl_rel_mode { RSL_REL_LOCAL_END = 1, }; -/*! \brief ip.access specific embedded information elements */ +/*! ip.ac |