aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmocom/gsm
diff options
context:
space:
mode:
Diffstat (limited to 'include/osmocom/gsm')
-rw-r--r--include/osmocom/gsm/a5.h4
-rw-r--r--include/osmocom/gsm/abis_nm.h2
-rw-r--r--include/osmocom/gsm/gsm_utils.h8
-rw-r--r--include/osmocom/gsm/kasumi.h6
-rw-r--r--include/osmocom/gsm/l1sap.h154
-rw-r--r--include/osmocom/gsm/lapd_core.h104
-rw-r--r--include/osmocom/gsm/lapdm.h52
-rw-r--r--include/osmocom/gsm/oap.h6
-rw-r--r--include/osmocom/gsm/protocol/gsm_04_08.h4
-rw-r--r--include/osmocom/gsm/protocol/gsm_08_08.h6
-rw-r--r--include/osmocom/gsm/protocol/gsm_08_58.h64
-rw-r--r--include/osmocom/gsm/protocol/gsm_12_21.h108
-rw-r--r--include/osmocom/gsm/rsl.h6
-rw-r--r--include/osmocom/gsm/tlv.h118
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.access specific embedded information elements */
enum rsl_ipac_embedded_ie {
RSL_IPAC_EIE_RXLEV = 0x00,
RSL_IPAC_EIE_RXQUAL = 0x01,
diff --git a/include/osmocom/gsm/protocol/gsm_12_21.h b/include/osmocom/gsm/protocol/gsm_12_21.h
index b35da447..1bdee9cd 100644
--- a/include/osmocom/gsm/protocol/gsm_12_21.h
+++ b/include/osmocom/gsm/protocol/gsm_12_21.h
@@ -32,60 +32,60 @@
#include <stdbool.h>
#include <osmocom/gsm/tlv.h>
-/*! \brief generic header in front of every OML message according to TS 08.59 */
+/*! generic header in front of every OML message according to TS 08.59 */
struct abis_om_hdr {
- /*! \brief Message Discriminator \ref abis_oml_mdisc */
+ /*! Message Discriminator \ref abis_oml_mdisc */
uint8_t mdisc;
- /*! \brief Placement (like \ref ABIS_OM_PLACEMENT_ONLY) */
+ /*! Placement (like \ref ABIS_OM_PLACEMENT_ONLY) */
uint8_t placement;
- /*! \brief Sequence Number (if \ref ABIS_OM_PLACEMENT_MIDDLE) */
+ /*! Sequence Number (if \ref ABIS_OM_PLACEMENT_MIDDLE) */
uint8_t sequence;
- /*! \brief Length in octets */
+ /*! Length in octets */
uint8_t length;
- /*! \brief actual payload data */
+ /*! actual payload data */
uint8_t data[0];
} __attribute__ ((packed));
#define ABIS_NM_MSG_SIZE 1024
#define ABIS_NM_MSG_HEADROOM 128
-/*! \brief Message Discriminator for Formatted Object Messages */
+/*! Message Discriminator for Formatted Object Messages */
#define ABIS_OM_MDISC_FOM 0x80
-/*! \brief Message Discriminator for Man Machine Interface */
+/*! Message Discriminator for Man Machine Interface */
#define ABIS_OM_MDISC_MMI 0x40
-/*! \brief Message Discriminator for TRAU management */
+/*! Message Discriminator for TRAU management */
#define ABIS_OM_MDISC_TRAU 0x20
-/*! \brief Message Discriminator for Manufacturer Specific Messages */
+/*! Message Discriminator for Manufacturer Specific Messages */
#define ABIS_OM_MDISC_MANUF 0x10
-/*! \brief Entire OML message is in the L2 frame */
+/*! Entire OML message is in the L2 frame */
#define ABIS_OM_PLACEMENT_ONLY 0x80
-/*! \brief First fragment of OML message is in this L2 frame */
+/*! First fragment of OML message is in this L2 frame */
#define ABIS_OM_PLACEMENT_FIRST 0x40
-/*! \brief Middle fragment of OML message is in this L2 frame */
+/*! Middle fragment of OML message is in this L2 frame */
#define ABIS_OM_PLACEMENT_MIDDLE 0x20
-/*! \brief Last fragment of OML message is in this L2 frame */
+/*! Last fragment of OML message is in this L2 frame */
#define ABIS_OM_PLACEMENT_LAST 0x10
-/*! \brief OML Object Instance */
+/*! OML Object Instance */
struct abis_om_obj_inst {
- uint8_t bts_nr; /*!< \brief BTS Number */
- uint8_t trx_nr; /*!< \brief TRX Number */
- uint8_t ts_nr; /*!< \brief Timeslot Number */
+ uint8_t bts_nr; /*!< BTS Number */
+ uint8_t trx_nr; /*!< TRX Number */
+ uint8_t ts_nr; /*!< Timeslot Number */
} __attribute__ ((packed));
-/*! \brief OML Object Instance */
+/*! OML Object Instance */
struct abis_om_fom_hdr {
- uint8_t msg_type; /*!< \brief Message Type (\ref abis_nm_msgtype) */
- uint8_t obj_class; /*!< \brief Object Class (\ref abis_nm_obj_class) */
- struct abis_om_obj_inst obj_inst; /*!< \brief Object Instance */
- uint8_t data[0]; /*!< \brief Data */
+ uint8_t msg_type; /*!< Message Type (\ref abis_nm_msgtype) */
+ uint8_t obj_class; /*!< Object Class (\ref abis_nm_obj_class) */
+ struct abis_om_obj_inst obj_inst; /*!< Object Instance */
+ uint8_t data[0]; /*!< Data */
} __attribute__ ((packed));
-/*! \brief Size of the OML FOM header in octets */
+/*! Size of the OML FOM header in octets */
#define ABIS_OM_FOM_HDR_SIZE (sizeof(struct abis_om_hdr) + sizeof(struct abis_om_fom_hdr))
-/*! \brief OML Message Type (Section 9.1) */
+/*! OML Message Type (Section 9.1) */
enum abis_nm_msgtype {
/* SW Download Management Messages */
NM_MT_LOAD_INIT = 0x01,
@@ -196,7 +196,7 @@ enum abis_nm_msgtype {
NM_MT_SET_ALARM_THRES_NACK,
};
-/*! \brief Siemens specific OML Message Types */
+/*! Siemens specific OML Message Types */
enum abis_nm_msgtype_bs11 {
NM_MT_BS11_RESET_RESOURCE = 0x74,
@@ -232,7 +232,7 @@ enum abis_nm_msgtype_bs11 {
NM_MT_BS11_RECONNECT_ACK,
};
-/*! \brief ip.access specific OML Message Types */
+/*! ip.access specific OML Message Types */
enum abis_nm_msgtype_ipacc {
NM_MT_IPACC_RESTART = 0x87,
NM_MT_IPACC_RESTART_ACK,
@@ -260,7 +260,7 @@ enum abis_nm_msgtype_ipacc {
NM_MT_IPACC_SET_ATTR_NACK,
};
-/*! \brief OML Probable Cause (Section 9.4.43) Manufacturer specific values */
+/*! OML Probable Cause (Section 9.4.43) Manufacturer specific values */
enum abis_mm_event_causes {
/* Critical causes */
OSMO_EVT_CRIT_SW_FATAL = 0x0000,
@@ -288,7 +288,7 @@ enum abis_nm_bs11_cell_alloc {
NM_BS11_CANR_DCS1800 = 0x01,
};
-/*! \brief OML Object Class (Section 9.2) */
+/*! OML Object Class (Section 9.2) */
enum abis_nm_obj_class {
NM_OC_SITE_MANAGER = 0x00,
NM_OC_BTS,
@@ -319,7 +319,7 @@ enum abis_nm_obj_class {
NM_OC_NULL = 0xff,
};
-/*! \brief OML Attributes / IEs (Section 9.4) */
+/*! OML Attributes / IEs (Section 9.4) */
enum abis_nm_attr {
NM_ATT_ABIS_CHANNEL = 0x01,
NM_ATT_ADD_INFO,
@@ -519,7 +519,7 @@ enum abis_nm_attr {
};
#define NM_ATT_BS11_FILE_DATA NM_ATT_EVENT_TYPE
-/*! \brief OML Administrative State (Section 9.4.4) */
+/*! OML Administrative State (Section 9.4.4) */
enum abis_nm_adm_state {
NM_STATE_LOCKED = 0x01,
NM_STATE_UNLOCKED = 0x02,
@@ -527,7 +527,7 @@ enum abis_nm_adm_state {
NM_STATE_NULL = 0xff,
};
-/*! \brief OML Availability State (Section 9.4.7) */
+/*! OML Availability State (Section 9.4.7) */
enum abis_nm_avail_state {
NM_AVSTATE_IN_TEST = 1,
NM_AVSTATE_POWER_OFF = 2,
@@ -538,14 +538,14 @@ enum abis_nm_avail_state {
NM_AVSTATE_OK = 0xff,
};
-/*! \brief OML Operational State */
+/*! OML Operational State */
enum abis_nm_op_state {
NM_OPSTATE_DISABLED = 1,
NM_OPSTATE_ENABLED = 2,
NM_OPSTATE_NULL = 0xff,
};
-/* \brief Channel Combination (Section 9.4.13) */
+/* Channel Combination (Section 9.4.13) */
enum abis_nm_chan_comb {
NM_CHANC_TCHFull = 0x00, /* TCH/F + TCH/H + SACCH/TF */
NM_CHANC_TCHHalf = 0x01, /* TCH/H(0,1) + FACCH/H(0,1) +
@@ -570,7 +570,7 @@ enum abis_nm_chan_comb {
NM_CHANC_OSMO_TCHFull_TCHHalf_PDCH = 0x90,
};
-/*! \brief Event Type (Section 9.4.16) */
+/*! Event Type (Section 9.4.16) */
enum abis_nm_event_type {
NM_EVT_COMM_FAIL = 0x00,
NM_EVT_QOS_FAIL = 0x01,
@@ -579,7 +579,7 @@ enum abis_nm_event_type {
NM_EVT_ENV_FAIL = 0x04,
};
-/*! \brief Perceived Severity (Section: 9.4.63) */
+/*! Perceived Severity (Section: 9.4.63) */
enum abis_nm_severity {
NM_SEVER_CEASED = 0x00,
NM_SEVER_CRITICAL = 0x01,
@@ -589,7 +589,7 @@ enum abis_nm_severity {
NM_SEVER_INDETERMINATE = 0x05,
};
-/*! \brief Probable Cause Type (Section 9.4.43) */
+/*! Probable Cause Type (Section 9.4.43) */
enum abis_nm_pcause_type {
NM_PCAUSE_T_X721 = 0x01,
NM_PCAUSE_T_GSM = 0x02,
@@ -600,7 +600,7 @@ extern const struct value_string abis_nm_pcause_type_names[];
extern const struct value_string abis_nm_msgtype_names[];
extern const struct value_string abis_nm_att_names[];
-/*! \brief NACK causes (Section 9.4.36) */
+/*! NACK causes (Section 9.4.36) */
enum abis_nm_nack_cause {
/* General Nack Causes */
NM_NACK_INCORR_STRUCT = 0x01,
@@ -638,15 +638,15 @@ enum abis_nm_nack_cause {
NM_NACK_MEAS_NOTSTART = 0x2c,
};
-/*! \brief Abis OML Channel (Section 9.4.1) */
+/*! Abis OML Channel (Section 9.4.1) */
struct abis_nm_channel {
uint8_t attrib;
- uint8_t bts_port; /*!< \brief BTS port number */
- uint8_t timeslot; /*!< \brief E1 timeslot */
- uint8_t subslot; /*!< \brief E1 sub-slot */
+ uint8_t bts_port; /*!< BTS port number */
+ uint8_t timeslot; /*!< E1 timeslot */
+ uint8_t subslot; /*!< E1 sub-slot */
} __attribute__ ((packed));
-/*! \brief 3GPP TS 12.21 9.4.53 T200 index */
+/*! 3GPP TS 12.21 9.4.53 T200 index */
enum abis_nm_t200_idx {
T200_SDCCH = 0,
T200_FACCH_F = 1,
@@ -659,7 +659,7 @@ enum abis_nm_t200_idx {
extern const uint8_t abis_nm_t200_ms[];
-/*! \brief Siemens BS-11 specific objects in the SienemsHW (0xA5) object class */
+/*! Siemens BS-11 specific objects in the SienemsHW (0xA5) object class */
enum abis_bs11_objtype {
BS11_OBJ_ALCO = 0x01,
BS11_OBJ_BBSIG = 0x02, /* obj_class: 0,1 */
@@ -670,7 +670,7 @@ enum abis_bs11_objtype {
BS11_OBJ_PA = 0x09, /* obj_class: 0, 1*/
};
-/*! \brief Siemens BS11 TRX power */
+/*! Siemens BS11 TRX power */
enum abis_bs11_trx_power {
BS11_TRX_POWER_GSM_2W = 0x06,
BS11_TRX_POWER_GSM_250mW= 0x07,
@@ -682,20 +682,20 @@ enum abis_bs11_trx_power {
BS11_TRX_POWER_DCS_160mW= 0x0d,
};
-/*! \brief Siemens BS11 PLL mode */
+/*! Siemens BS11 PLL mode */
enum abis_bs11_li_pll_mode {
BS11_LI_PLL_LOCKED = 2,
BS11_LI_PLL_STANDALONE = 3,
};
-/*! \brief Siemens BS11 E1 line configuration */
+/*! Siemens BS11 E1 line configuration */
enum abis_bs11_line_cfg {
BS11_LINE_CFG_STAR = 0x00,
BS11_LINE_CFG_MULTIDROP = 0x01,
BS11_LINE_CFG_LOOP = 0x02,
};
-/*! \brief Siemens BS11 boot phase */
+/*! Siemens BS11 boot phase */
enum abis_bs11_phase {
BS11_STATE_SOFTWARE_RQD = 0x01,
BS11_STATE_LOAD_SMU_INTENDED = 0x11,
@@ -712,7 +712,7 @@ enum abis_bs11_phase {
BS11_STATE_ABIS_LOAD = 0x13,
};
-/*! \brief ip.access test number */
+/*! ip.access test number */
enum abis_nm_ipacc_test_no {
NM_IPACC_TESTNO_RLOOP_ANT = 0x01,
NM_IPACC_TESTNO_RLOOP_XCVR = 0x02,
@@ -726,7 +726,7 @@ enum abis_nm_ipacc_test_no {
NM_IPACC_TESTNO_BCCCH_MONITOR = 0x46,
};
-/*! \brief first byte after length inside NM_ATT_TEST_REPORT */
+/*! first byte after length inside NM_ATT_TEST_REPORT */
enum abis_nm_ipacc_test_res {
NM_IPACC_TESTRES_SUCCESS = 0,
NM_IPACC_TESTRES_TIMEOUT = 1,
@@ -735,7 +735,7 @@ enum abis_nm_ipacc_test_res {
NM_IPACC_TESTRES_STOPPED = 4,
};
-/*! \brief internal IE inside NM_ATT_TEST_REPORT */
+/*! internal IE inside NM_ATT_TEST_REPORT */
enum abis_nm_ipacc_testres_ie {
NM_IPACC_TR_IE_FREQ_ERR_LIST = 3,
NM_IPACC_TR_IE_CHAN_USAGE = 4,
@@ -744,7 +744,7 @@ enum abis_nm_ipacc_testres_ie {
NM_IPACC_TR_IE_FREQ_ERR = 18,
};
-/*! \brief ip.access IEI */
+/*! ip.access IEI */
enum ipac_eie {
NM_IPAC_EIE_ARFCN_WHITE = 0x01,
NM_IPAC_EIE_ARFCH_BLACK = 0x02,
@@ -777,7 +777,7 @@ enum ipac_eie {
NM_IPAC_EIE_BTS_ID = 0x25,
};
-/*! \brief ip.access NWL BCCH information type */
+/*! ip.access NWL BCCH information type */
enum ipac_bcch_info_type {
IPAC_BINF_RXLEV = (1 << 8),
IPAC_BINF_RXQUAL = (1 << 9),
@@ -792,7 +792,7 @@ enum ipac_bcch_info_type {
IPAC_BINF_CELL_ALLOC = (1 << 2),
};
-/*! \brief 3GPP TS 52.021 §9.4.62 SW Description */
+/*! 3GPP TS 52.021 §9.4.62 SW Description */
struct abis_nm_sw_desc {
uint8_t file_id[UINT8_MAX];
uint8_t file_id_len;
diff --git a/include/osmocom/gsm/rsl.h b/include/osmocom/gsm/rsl.h
index 5da61808..93e27a14 100644
--- a/include/osmocom/gsm/rsl.h
+++ b/include/osmocom/gsm/rsl.h
@@ -17,13 +17,13 @@ void rsl_init_cchan_hdr(struct abis_rsl_cchan_hdr *ch, uint8_t msg_type);
extern const struct tlv_definition rsl_att_tlvdef;
-/*! \brief Parse RSL TLV structure using \ref tlv_parse */
+/*! Parse RSL TLV structure using \ref tlv_parse */
#define rsl_tlv_parse(dec, buf, len) \
tlv_parse(dec, &rsl_att_tlvdef, buf, len, 0, 0)
extern const struct tlv_definition rsl_ipac_eie_tlvdef;
-/*! \brief Parse RSL IPAC EIE TLV structure using \ref tlv_parse */
+/*! Parse RSL IPAC EIE TLV structure using \ref tlv_parse */
#define rsl_ipac_eie_tlv_parse(dec, buf, len) \
tlv_parse(dec, &rsl_ipac_eie_tlvdef, buf, len, 0, 0)
@@ -58,7 +58,7 @@ struct msgb *rsl_rll_simple(uint8_t msg_type, uint8_t chan_nr,
extern const struct value_string rsl_act_type_names[];
-/*! \brief Return a human readable name for GSM 08.58 RSL_ACT_* constants. */
+/*! Return a human readable name for GSM 08.58 RSL_ACT_* constants. */
static inline const char *rsl_act_type_name(uint8_t act_type)
{
return get_value_string(rsl_act_type_names, act_type);
diff --git a/include/osmocom/gsm/tlv.h b/include/osmocom/gsm/tlv.h
index 4a9bd272..fa3b6564 100644
--- a/include/osmocom/gsm/tlv.h
+++ b/include/osmocom/gsm/tlv.h
@@ -25,21 +25,21 @@
*/
-/*! \brief gross length of a LV type field */
+/*! gross length of a LV type field */
#define LV_GROSS_LEN(x) (x+1)
-/*! \brief gross length of a TLV type field */
+/*! gross length of a TLV type field */
#define TLV_GROSS_LEN(x) (x+2)
-/*! \brief gross length of a TLV16 type field */
+/*! gross length of a TLV16 type field */
#define TLV16_GROSS_LEN(x) ((2*x)+2)
-/*! \brief gross length of a TL16V type field */
+/*! gross length of a TL16V type field */
#define TL16V_GROSS_LEN(x) (x+3)
-/*! \brief gross length of a L16TV type field */
+/*! gross length of a L16TV type field */
#define L16TV_GROSS_LEN(x) (x+3)
-/*! \brief maximum length of TLV of one byte length */
+/*! maximum length of TLV of one byte length */
#define TVLV_MAX_ONEBYTE 0x7f
-/*! \brief gross length of a TVLV type field */
+/*! gross length of a TVLV type field */
static inline uint16_t TVLV_GROSS_LEN(uint16_t len)
{
if (len <= TVLV_MAX_ONEBYTE)
@@ -48,7 +48,7 @@ static inline uint16_t TVLV_GROSS_LEN(uint16_t len)
return TL16V_GROSS_LEN(len);
}
-/*! \brief gross length of vTvL header (tag+len) */
+/*! gross length of vTvL header (tag+len) */
static inline uint16_t VTVL_GAN_GROSS_LEN(uint16_t tag, uint16_t len)
{
uint16_t ret = 2;
@@ -62,7 +62,7 @@ static inline uint16_t VTVL_GAN_GROSS_LEN(uint16_t tag, uint16_t len)
return ret;
}
-/*! \brief gross length of vTvLV (tag+len+val) */
+/*! gross length of vTvLV (tag+len+val) */
static inline uint16_t VTVLV_GAN_GROSS_LEN(uint16_t tag, uint16_t len)
{
uint16_t ret;
@@ -80,7 +80,7 @@ static inline uint16_t VTVLV_GAN_GROSS_LEN(uint16_t tag, uint16_t len)
/* TLV generation */
-/*! \brief put (append) a LV field */
+/*! put (append) a LV field */
static inline uint8_t *lv_put(uint8_t *buf, uint8_t len,
const uint8_t *val)
{
@@ -89,7 +89,7 @@ static inline uint8_t *lv_put(uint8_t *buf, uint8_t len,
return buf + len;
}
-/*! \brief put (append) a TLV field */
+/*! put (append) a TLV field */
static inline uint8_t *tlv_put(uint8_t *buf, uint8_t tag, uint8_t len,
const uint8_t *val)
{
@@ -99,7 +99,7 @@ static inline uint8_t *tlv_put(uint8_t *buf, uint8_t tag, uint8_t len,
return buf + len;
}
-/*! \brief put (append) a TLV16 field */
+/*! put (append) a TLV16 field */
static inline uint8_t *tlv16_put(uint8_t *buf, uint8_t tag, uint8_t len,
const uint16_t *val)
{
@@ -109,7 +109,7 @@ static inline uint8_t *tlv16_put(uint8_t *buf, uint8_t tag, uint8_t len,
return buf + len*2;
}
-/*! \brief put (append) a TL16V field */
+/*! put (append) a TL16V field */
static inline uint8_t *tl16v_put(uint8_t *buf, uint8_t tag, uint16_t len,
const uint8_t *val)
{
@@ -120,7 +120,7 @@ static inline uint8_t *tl16v_put(uint8_t *buf, uint8_t tag, uint16_t len,
return buf + len*2;
}
-/*! \brief put (append) a TvLV field */
+/*! put (append) a TvLV field */
static inline uint8_t *tvlv_put(uint8_t *buf, uint8_t tag, uint16_t len,
const uint8_t *val)
{
@@ -135,7 +135,7 @@ static inline uint8_t *tvlv_put(uint8_t *buf, uint8_t tag, uint16_t len,
return ret;
}
-/*! \brief put (append) a variable-length tag or variable-length length * */
+/*! put (append) a variable-length tag or variable-length length * */
static inline uint8_t *vt_gan_put(uint8_t *buf, uint16_t tag)
{
if (tag > TVLV_MAX_ONEBYTE) {
@@ -148,7 +148,7 @@ static inline uint8_t *vt_gan_put(uint8_t *buf, uint16_t tag)
return buf;
}
-/* \brief put (append) vTvL (GAN) field (tag + length)*/
+/* put (append) vTvL (GAN) field (tag + length)*/
static inline uint8_t *vtvl_gan_put(uint8_t *buf, uint16_t tag, uint16_t len)
{
uint8_t *ret;
@@ -157,7 +157,7 @@ static inline uint8_t *vtvl_gan_put(uint8_t *buf, uint16_t tag, uint16_t len)
return vt_gan_put(ret, len);
}
-/* \brief put (append) vTvLV (GAN) field (tag + length + val) */
+/* put (append) vTvLV (GAN) field (tag + length + val) */
static inline uint8_t *vtvlv_gan_put(uint8_t *buf, uint16_t tag, uint16_t len,
const uint8_t *val)
{
@@ -171,14 +171,14 @@ static inline uint8_t *vtvlv_gan_put(uint8_t *buf, uint16_t tag, uint16_t len,
return ret;
}
-/*! \brief put (append) a TLV16 field to \ref msgb */
+/*! put (append) a TLV16 field to \ref msgb */
static inline uint8_t *msgb_tlv16_put(struct msgb *msg, uint8_t tag, uint8_t len, const uint16_t *val)
{
uint8_t *buf = msgb_put(msg, TLV16_GROSS_LEN(len));
return tlv16_put(buf, tag, len, val);
}
-/*! \brief put (append) a TL16V field to \ref msgb */
+/*! put (append) a TL16V field to \ref msgb */
static inline uint8_t *msgb_tl16v_put(struct msgb *msg, uint8_t tag, uint16_t len,
const uint8_t *val)
{
@@ -186,7 +186,7 @@ static inline uint8_t *msgb_tl16v_put(struct msgb *msg, uint8_t tag, uint16_t le
return tl16v_put(buf, tag, len, val);
}
-/*! \brief put (append) a TvLV field to \ref msgb */
+/*! put (append) a TvLV field to \ref msgb */
static inline uint8_t *msgb_tvlv_put(struct msgb *msg, uint8_t tag, uint16_t len,
const uint8_t *val)
{
@@ -194,7 +194,7 @@ static inline uint8_t *msgb_tvlv_put(struct msgb *msg, uint8_t tag, uint16_t len
return tvlv_put(buf, tag, len, val);
}
-/*! \brief put (append) a vTvLV field to \ref msgb */
+/*! put (append) a vTvLV field to \ref msgb */
static inline uint8_t *msgb_vtvlv_gan_put(struct msgb *msg, uint16_t tag,
uint16_t len, const uint8_t *val)
{
@@ -202,7 +202,7 @@ static inline uint8_t *msgb_vtvlv_gan_put(struct msgb *msg, uint16_t tag,
return vtvlv_gan_put(buf, tag, len, val);
}
-/*! \brief put (append) a L16TV field to \ref msgb */
+/*! put (append) a L16TV field to \ref msgb */
static inline uint8_t *msgb_l16tv_put(struct msgb *msg, uint16_t len, uint8_t tag,
const uint8_t *val)
{
@@ -215,14 +215,14 @@ static inline uint8_t *msgb_l16tv_put(struct msgb *msg, uint16_t len, uint8_t ta
return buf + len;
}
-/*! \brief put (append) a V field */
+/*! put (append) a V field */
static inline uint8_t *v_put(uint8_t *buf, uint8_t val)
{
*buf++ = val;
return buf;
}
-/*! \brief put (append) a TV field */
+/*! put (append) a TV field */
static inline uint8_t *tv_put(uint8_t *buf, uint8_t tag,
uint8_t val)
{
@@ -231,7 +231,7 @@ static inline uint8_t *tv_put(uint8_t *buf, uint8_t tag,
return buf;
}
-/*! \brief put (append) a TVfixed field */
+/*! put (append) a TVfixed field */
static inline uint8_t *tv_fixed_put(uint8_t *buf, uint8_t tag,
unsigned int len, const uint8_t *val)
{
@@ -240,7 +240,7 @@ static inline uint8_t *tv_fixed_put(uint8_t *buf, uint8_t tag,
return buf + len;
}
-/*! \brief put (append) a TV16 field
+/*! put (append) a TV16 field
* \param[in,out] buf data buffer
* \param[in] tag Tag value
* \param[in] val Value (in host byte order!)
@@ -254,7 +254,7 @@ static inline uint8_t *tv16_put(uint8_t *buf, uint8_t tag,
return buf;
}
-/*! \brief put (append) a LV field to a \ref msgb
+/*! put (append) a LV field to a \ref msgb
* \returns pointer to first byte after newly-put information */
static inline uint8_t *msgb_lv_put(struct msgb *msg, uint8_t len, const uint8_t *val)
{
@@ -262,7 +262,7 @@ static inline uint8_t *msgb_lv_put(struct msgb *msg, uint8_t len, const uint8_t
return lv_put(buf, len, val);
}
-/*! \brief put (append) a TLV field to a \ref msgb
+/*! put (append) a TLV field to a \ref msgb
* \returns pointer to first byte after newly-put information */
static inline uint8_t *msgb_tlv_put(struct msgb *msg, uint8_t tag, uint8_t len, const uint8_t *val)
{
@@ -270,7 +270,7 @@ static inline uint8_t *msgb_tlv_put(struct msgb *msg, uint8_t tag, uint8_t len,
return tlv_put(buf, tag, len, val);
}
-/*! \brief put (append) a TV field to a \ref msgb
+/*! put (append) a TV field to a \ref msgb
* \returns pointer to first byte after newly-put information */
static inline uint8_t *msgb_tv_put(struct msgb *msg, uint8_t tag, uint8_t val)
{
@@ -278,7 +278,7 @@ static inline uint8_t *msgb_tv_put(struct msgb *msg, uint8_t tag, uint8_t val)
return tv_put(buf, tag, val);
}
-/*! \brief put (append) a TVfixed field to a \ref msgb
+/*! put (append) a TVfixed field to a \ref msgb
* \returns pointer to first byte after newly-put information */
static inline uint8_t *msgb_tv_fixed_put(struct msgb *msg, uint8_t tag,
unsigned int len, const uint8_t *val)
@@ -287,7 +287,7 @@ static inline uint8_t *msgb_tv_fixed_put(struct msgb *msg, uint8_t tag,
return tv_fixed_put(buf, tag, len, val);
}
-/*! \brief put (append) a V field to a \ref msgb
+/*! put (append) a V field to a \ref msgb
* \returns pointer to first byte after newly-put information */
static inline uint8_t *msgb_v_put(struct msgb *msg, uint8_t val)
{
@@ -295,7 +295,7 @@ static inline uint8_t *msgb_v_put(struct msgb *msg, uint8_t val)
return v_put(buf, val);
}
-/*! \brief put (append) a TV16 field to a \ref msgb
+/*! put (append) a TV16 field to a \ref msgb
* \returns pointer to first byte after newly-put information */
static inline uint8_t *msgb_tv16_put(struct msgb *msg, uint8_t tag, uint16_t val)
{
@@ -303,7 +303,7 @@ static inline uint8_t *msgb_tv16_put(struct msgb *msg, uint8_t tag, uint16_t val
return tv16_put(buf, tag, val);
}
-/*! \brief push (prepend) a TLV field to a \ref msgb
+/*! push (prepend) a TLV field to a \ref msgb
* \returns pointer to first byte of newly-pushed information */
static inline uint8_t *msgb_tlv_push(struct msgb *msg, uint8_t tag, uint8_t len, const uint8_t *val)
{
@@ -312,7 +312,7 @@ static inline uint8_t *msgb_tlv_push(struct msgb *msg, uint8_t tag, uint8_t len,
return buf;
}
-/*! \brief push (prepend) a TV field to a \ref msgb
+/*! push (prepend) a TV field to a \ref msgb
* \returns pointer to first byte of newly-pushed information */
static inline uint8_t *msgb_tv_push(struct msgb *msg, uint8_t tag, uint8_t val)
{
@@ -321,7 +321,7 @@ static inline uint8_t *msgb_tv_push(struct msgb *msg, uint8_t tag, uint8_t val)
return buf;
}
-/*! \brief push (prepend) a TV16 field to a \ref msgb
+/*! push (prepend) a TV16 field to a \ref msgb
* \returns pointer to first byte of newly-pushed information */
static inline uint8_t *msgb_tv16_push(struct msgb *msg, uint8_t tag, uint16_t val)
{
@@ -330,7 +330,7 @@ static inline uint8_t *msgb_tv16_push(struct msgb *msg, uint8_t tag, uint16_t va
return buf;
}
-/*! \brief push (prepend) a TvLV field to a \ref msgb
+/*! push (prepend) a TvLV field to a \ref msgb
* \returns pointer to first byte of newly-pushed information */
static inline uint8_t *msgb_tvlv_push(struct msgb *msg, uint8_t tag, uint16_t len,
const uint8_t *val)
@@ -340,7 +340,7 @@ static inline uint8_t *msgb_tvlv_push(struct msgb *msg, uint8_t tag, uint16_t le
return buf;
}
-/* \brief push (prepend) a vTvL header to a \ref msgb
+/* push (prepend) a vTvL header to a \ref msgb
*/
static inline uint8_t *msgb_vtvl_gan_push(struct msgb *msg, uint16_t tag,
uint16_t len)
@@ -361,37 +361,37 @@ static inline uint8_t *msgb_vtvlv_gan_push(struct msgb *msg, uint16_t tag,
/* TLV parsing */
-/*! \brief Entry in a TLV parser array */
+/*! Entry in a TLV parser array */
struct tlv_p_entry {
- uint16_t len; /*!< \brief length */
- const uint8_t *val; /*!< \brief pointer to value */
+ uint16_t len; /*!< length */
+ const uint8_t *val; /*!< pointer to value */
};
-/*! \brief TLV type */
+/*! TLV type */
enum tlv_type {
- TLV_TYPE_NONE, /*!< \brief no type */
- TLV_TYPE_FIXED, /*!< \brief fixed-length value-only */
- TLV_TYPE_T, /*!< \brief tag-only */
- TLV_TYPE_TV, /*!< \brief tag-value (8bit) */
- TLV_TYPE_TLV, /*!< \brief tag-length-value */
- TLV_TYPE_TL16V, /*!< \brief tag, 16 bit length, value */
- TLV_TYPE_TvLV, /*!< \brief tag, variable length, value */
- TLV_TYPE_SINGLE_TV, /*!< \brief tag and value (both 4 bit) in 1 byte */
- TLV_TYPE_vTvLV_GAN, /*!< \brief variable-length tag, variable-length length */
+ TLV_TYPE_NONE, /*!< no type */
+ TLV_TYPE_FIXED, /*!< fixed-length value-only */
+ TLV_TYPE_T, /*!< tag-only */
+ TLV_TYPE_TV, /*!< tag-value (8bit) */
+ TLV_TYPE_TLV, /*!< tag-length-value */
+ TLV_TYPE_TL16V, /*!< tag, 16 bit length, value */
+ TLV_TYPE_TvLV, /*!< tag, variable length, value */
+ TLV_TYPE_SINGLE_TV, /*!< tag and value (both 4 bit) in 1 byte */
+ TLV_TYPE_vTvLV_GAN, /*!< variable-length tag, variable-length length */
};
-/*! \brief Definition of a single IE (Information Element) */
+/*! Definition of a single IE (Information Element) */
struct tlv_def {
- enum tlv_type type; /*!< \brief TLV type */
- uint8_t fixed_len; /*!< \brief length in case of \ref TLV_TYPE_FIXED */
+ enum tlv_type type; /*!< TLV type */
+ uint8_t fixed_len; /*!< length in case of \ref TLV_TYPE_FIXED */
};
-/*! \brief Definition of All 256 IE / TLV */
+/*! Definition of All 256 IE / TLV */
struct tlv_definition {
struct tlv_def def[256];
};
-/*! \brief result of the TLV parser */
+/*! result of the TLV parser */
struct tlv_parsed {
struct tlv_p_entry lv[256];
};
@@ -414,7 +414,7 @@ void tlv_def_patch(struct tlv_definition *dst, const struct tlv_definition *src)
#define TLVP_PRES_LEN(tp, tag, min_len) \
(TLVP_PRESENT(tp, tag) && TLVP_LEN(tp, tag) >= min_len)
-/*! \brief Align given TLV element with 16 bit value to an even address
+/*! Align given TLV element with 16 bit value to an even address
* \param[in] tp pointer to \ref tlv_parsed
* \param[in] pos element to return
* \returns aligned 16 bit value
@@ -426,7 +426,7 @@ static inline uint16_t tlvp_val16_unal(const struct tlv_parsed *tp, int pos)
return res;
}
-/*! \brief Align given TLV element with 32 bit value to an address that is a multiple of 4
+/*! Align given TLV element with 32 bit value to an address that is a multiple of 4
* \param[in] tp pointer to \ref tlv_parsed
* \param[in] pos element to return
* \returns aligned 32 bit value
@@ -438,7 +438,7 @@ static inline uint32_t tlvp_val32_unal(const struct tlv_parsed *tp, int pos)
return res;
}
-/*! \brief Retrieve (possibly unaligned) TLV element and convert to host byte order
+/*! Retrieve (possibly unaligned) TLV element and convert to host byte order
* \param[in] tp pointer to \ref tlv_parsed
* \param[in] pos element to return
* \returns aligned 16 bit value in host byte order
@@ -448,7 +448,7 @@ static inline uint16_t tlvp_val16be(const struct tlv_parsed *tp, int pos)
return osmo_load16be(TLVP_VAL(tp, pos));
}
-/*! \brief Retrieve (possibly unaligned) TLV element and convert to host byte order
+/*! Retrieve (possibly unaligned) TLV element and convert to host byte order
* \param[in] tp pointer to \ref tlv_parsed
* \param[in] pos element to return
* \returns aligned 32 bit value in host byte order