libosmogsm 1.10.0.10-24ad1
Osmocom GSM library
|
RLP (Radio Link Protocol) as per 3GPP TS 24.022. More...
Files | |
file | rlp.h |
Data Structures | |
struct | osmo_rlp_frame_decoded |
Data structure representing one decoded RLP frame. More... | |
Macros | |
#define | FCS_SIZE_BYTES 3 |
Enumerations | |
enum | osmo_rlp_ftype { OSMO_RLP_FT_U , OSMO_RLP_FT_S , OSMO_RLP_FT_IS } |
RLP frame type as per 3GPP TS 24.022 Section 5.2.1. More... | |
enum | osmo_rlp_u_ftype { OSMO_RLP_U_FT_SABM = 0x07 , OSMO_RLP_U_FT_UA = 0x0c , OSMO_RLP_U_FT_DISC = 0x08 , OSMO_RLP_U_FT_DM = 0x03 , OSMO_RLP_U_FT_NULL = 0x0f , OSMO_RLP_U_FT_UI = 0x00 , OSMO_RLP_U_FT_XID = 0x17 , OSMO_RLP_U_FT_TEST = 0x1c , OSMO_RLP_U_FT_REMAP = 0x11 } |
RLP U-Frame Type as per 3GPP TS 24.022 Section 5.2.1. More... | |
enum | osmo_rlp_s_ftype { OSMO_RLP_S_FT_RR = 0 , OSMO_RLP_S_FT_REJ = 2 , OSMO_RLP_S_FT_RNR = 1 , OSMO_RLP_S_FT_SREJ = 3 } |
RLP S-Frame type as per 3GPP TS 24.022 Section 5.2.1. More... | |
Functions | |
int | osmo_rlp_decode (struct osmo_rlp_frame_decoded *out, uint8_t version, const uint8_t *data, size_t data_len) |
decode a RLP frame into its abstract representation. More... | |
int | osmo_rlp_encode (uint8_t *out, size_t out_size, const struct osmo_rlp_frame_decoded *in) |
encode a RLP frame from its abstract representation. More... | |
uint32_t | osmo_rlp_fcs_compute (const uint8_t *in, size_t in_len) |
compute RLP FCS according to 3GPP TS 24.022 Section 4.4. More... | |
Variables | |
const struct value_string | osmo_rlp_ftype_vals [] |
const struct value_string | osmo_rlp_ftype_u_vals [] |
const struct value_string | osmo_rlp_ftype_s_vals [] |
const struct value_string | osmo_rlp_ftype_vals [] |
const struct value_string | osmo_rlp_ftype_u_vals [] |
const struct value_string | osmo_rlp_ftype_s_vals [] |
static const uint32_t | rlp_fcs_table [256] |
RLP (Radio Link Protocol) as per 3GPP TS 24.022.
#define FCS_SIZE_BYTES 3 |
enum osmo_rlp_ftype |
enum osmo_rlp_s_ftype |
enum osmo_rlp_u_ftype |
int osmo_rlp_decode | ( | struct osmo_rlp_frame_decoded * | out, |
uint8_t | version, | ||
const uint8_t * | data, | ||
size_t | data_len | ||
) |
decode a RLP frame into its abstract representation.
Doesn't check FCS correctness.
[out] | out | caller-allocated memory for output of decoded frame |
[in] | version | RLP version number to use when decoding |
[in] | data | raw RLP frame input data |
[in] | data_len | length of data (in octets); must be 30 (240bit) or 72 (576bit) |
References osmo_rlp_frame_decoded::c_r, data, ENOTSUP, osmo_rlp_frame_decoded::fcs, FCS_SIZE_BYTES, osmo_rlp_frame_decoded::ftype, hdr_len, osmo_rlp_frame_decoded::info, osmo_rlp_frame_decoded::info_len, osmo_rlp_frame_decoded::n_r, osmo_rlp_frame_decoded::n_s, OSMO_RLP_FT_IS, OSMO_RLP_FT_S, OSMO_RLP_FT_U, OSMO_RLP_U_FT_XID, osmo_rlp_frame_decoded::p_f, osmo_rlp_frame_decoded::s_ftype, osmo_rlp_frame_decoded::u_ftype, version, and osmo_rlp_frame_decoded::version.
int osmo_rlp_encode | ( | uint8_t * | out, |
size_t | out_size, | ||
const struct osmo_rlp_frame_decoded * | in | ||
) |
encode a RLP frame from its abstract representation.
Generates FCS.
[out] | out | caller-allocated output buffer |
[in] | out_size | size of output buffer (in octets); must be 30 (240bit) or 72 (576bit) |
[in] | in | decoded RLP frame which is to be encoded |
References osmo_rlp_frame_decoded::c_r, ENOTSUP, FCS_SIZE_BYTES, osmo_rlp_frame_decoded::ftype, hdr_len, osmo_rlp_frame_decoded::info, osmo_rlp_frame_decoded::info_len, osmo_rlp_frame_decoded::n_r, osmo_rlp_frame_decoded::n_s, osmo_rlp_fcs_compute(), OSMO_RLP_FT_IS, OSMO_RLP_FT_S, OSMO_RLP_FT_U, OSMO_RLP_U_FT_XID, osmo_rlp_frame_decoded::p_f, osmo_rlp_frame_decoded::s_ftype, osmo_rlp_frame_decoded::u_ftype, and osmo_rlp_frame_decoded::version.
uint32_t osmo_rlp_fcs_compute | ( | const uint8_t * | in, |
size_t | in_len | ||
) |
compute RLP FCS according to 3GPP TS 24.022 Section 4.4.
[in] | in | input data over which to compute FCS |
[in] | in_len | length of input data (in octets) |
References rlp_fcs_table.
Referenced by osmo_rlp_encode().
|
extern |
const struct value_string osmo_rlp_ftype_s_vals[] |
|
extern |
const struct value_string osmo_rlp_ftype_u_vals[] |
|
extern |
const struct value_string osmo_rlp_ftype_vals[] |
|
static |
Referenced by osmo_rlp_fcs_compute().