libosmogsm
0.12.0
Osmocom GSM library
|
#include <stdint.h>
#include <osmocom/core/linuxlist.h>
#include <osmocom/core/utils.h>
Go to the source code of this file.
int tlv_parse_one(uint8_t *o_tag, uint16_t *o_len, const uint8_t **o_val, const struct tlv_definition *def, const uint8_t *buf, int buf_len)
Parse a single TLV encoded IE.
Definition: tlv_parser.c:132
@ SYSINFO_TYPE_MEAS_INFO
Definition: sysinfo.h:38
#define RSL_EXT_MEAS_ORDER
Definition: gsm_08_58.h:527
@ RSL_IE_CMD_INDICATOR
Definition: gsm_08_58.h:263
#define RSL_ERR_IE_CONTENT
Definition: gsm_08_58.h:506
@ RSL_IE_UPLINK_MEAS
Definition: gsm_08_58.h:238
@ RSL_MT_CONN_FAIL
Definition: gsm_08_58.h:125
uint8_t len
Definition: gsm_04_11.h:2
const struct value_string osmo_sitype_strs[_MAX_SYSINFO_TYPE]
Definition: sysinfo.c:104
@ RSL_IE_SIEMENS_MRPCI
Definition: gsm_08_58.h:275
const char * rsl_or_ipac_msg_name(uint8_t msg_type)
Get human-readable name of standard or ip.access RSL msg type.
Definition: rsl.c:403
uint8_t data[0]
message payload data
Definition: gsm_03_41.h:34
uint8_t osmo_sitype2rsl(enum osmo_sysinfo_type si_type)
Definition: sysinfo.c:220
uint8_t ie_link_id
RSL_IE_LINK_IDENT (tag)
Definition: gsm_08_58.h:44
uint8_t rxlev_buckets[NUM_RXLEVS][NUM_ARFCNS/8]
Definition: rxlev_stat.h:11
int plan
Definition: mncc.h:35
@ RSL_IE_ACCESS_DELAY
Definition: gsm_08_58.h:230
@ RSL_MT_IPAC_BIND_MUX_NACK
Definition: gsm_08_58.h:168
size_t osmo_earfcn_bit_size_ext(const struct osmo_earfcn_si2q *e, size_t offset)
Return number of bits necessary to represent earfcn struct as Repeated E-UTRAN Neighbour Cells IE fro...
Definition: sysinfo.c:166
struct tlv_parsed * osmo_tlvp_copy(const struct tlv_parsed *tp_orig, void *ctx)
Copy tlv_parsed using given talloc context.
Definition: tlv_parser.c:69
@ SYSINFO_TYPE_13
Definition: sysinfo.h:26
@ GMM_CAUSE_INV_MAND_INFO
Definition: gsm_04_08_gprs.h:221
uint8_t link_id
Definition: gsm_08_08.h:3
@ RSL_MT_RTD_REP
Definition: gsm_08_58.h:145
@ RSL_IE_NCH_DRX_INFO
Definition: gsm_08_58.h:262
@ RSL_MT_MODE_MODIFY_REQ
Definition: gsm_08_58.h:130
const uint8_t * val
pointer to value
Definition: tlv.h:396
static const struct value_string rsl_msgt_names[]
Definition: rsl.c:287
bool thresh_lo_valid
Definition: sysinfo.h:66
@ RSL_MT_PHY_CONTEXT_REQ
Definition: gsm_08_58.h:133
#define RLL_CAUSE_T200_EXPIRED
Definition: gsm_08_58.h:448
@ RSL_IPAC_EIE_TIMING_ERR
Definition: gsm_08_58.h:669
@ RSL_IE_CHAN_NR
Definition: gsm_08_58.h:214
#define RLL_CAUSE_UNSOL_DM_RESP
Definition: gsm_08_58.h:451
@ RSL_IE_IPAC_RTP_COMPR
Definition: gsm_08_58.h:299
#define RLL_CAUSE_SABM_INFO_NOTALL
Definition: gsm_08_58.h:461
@ RSL_MT_SACCH_FILL
Definition: gsm_08_58.h:114
@ RSL_MT_REL_CONF
Definition: gsm_08_58.h:94
@ SYSINFO_TYPE_2ter
Definition: sysinfo.h:33
@ RSL_IE_MS_POWER_PARAM
Definition: gsm_08_58.h:244
@ RSL_IE_CHAN_MODE
Definition: gsm_08_58.h:219
#define RSL_SYSTEM_INFO_5ter
Definition: gsm_08_58.h:525
struct abis_rsl_common_hdr c
Definition: gsm_08_58.h:59
@ RSL_IE_CHAN_NEEDED
Definition: gsm_08_58.h:253
uint8_t xres[8]
Definition: oap.h:74
int osmo_tlvp_merge(struct tlv_parsed *dst, const struct tlv_parsed *src)
Merge all tlv_parsed attributes of 'src' into 'dst'.
Definition: tlv_parser.c:104
@ RSL_MT_SUSP_CONF
Definition: gsm_08_58.h:99
@ RSL_IE_PAGING_LOAD
Definition: gsm_08_58.h:228
uint8_t cause
Definition: gsm_04_08.h:710
@ OAP_RAND_IE
Definition: oap.h:42
@ RSL_IPAC_EIE_FREQ_ERR
Definition: gsm_08_58.h:668
@ OAP_CAUSE_IE
Definition: oap.h:41
@ SYSINFO_TYPE_17
Definition: sysinfo.h:28
@ OAP_AUTS_IE
Definition: oap.h:45
#define RSL_ERR_SERV_OPT_UNAVAIL
Definition: gsm_08_58.h:490
#define RSL_SYSTEM_INFO_9
Definition: gsm_08_58.h:532
#define RSL_SYSTEM_INFO_5bis
Definition: gsm_08_58.h:524
@ RSL_MT_REL_REQ
Definition: gsm_08_58.h:93
#define RSL_CHAN_BCCH
Definition: gsm_08_58.h:371
@ RSL_MT_IPAC_PDCH_DEACT_NACK
Definition: gsm_08_58.h:162
#define RSL_MEAS_INFO
Definition: gsm_08_58.h:528
#define RSL_ACT_INTER_ASYNC
Definition: gsm_08_58.h:381
@ RSL_MT_IPAC_PDCH_DEACT
Definition: gsm_08_58.h:160
void tlv_def_patch(struct tlv_definition *dst, const struct tlv_definition *src)
take a master (src) tlvdev and fill up all empty slots in 'dst'
Definition: tlv_parser.c:340
const char * rsl_err_name(uint8_t err)
Get human-readable name for RSL Error.
Definition: rsl.c:281
#define NUM_ARFCNS
Definition: rxlev_stat.h:6
int tlv_parse(struct tlv_parsed *dec, const struct tlv_definition *def, const uint8_t *buf, int buf_len, uint8_t lv_tag, uint8_t lv_tag2)
Parse an entire buffer of TLV encoded Information Elements.
Definition: tlv_parser.c:237
#define RLL_CAUSE_IFRM_INC_LEN
Definition: gsm_08_58.h:458
@ RSL_MT_LISTENER_DET
Definition: gsm_08_58.h:143
#define RLL_CAUSE_IFRM_INC_MBITS
Definition: gsm_08_58.h:457
@ RSL_IE_IPAC_SPEECH_MODE
Definition: gsm_08_58.h:292
@ RSL_IE_SMSCB_MSG
Definition: gsm_08_58.h:255
struct tlv_definition tvlv_att_def
Definition: tlv_parser.c:48
@ RSL_MT_HANDO_DET
Definition: gsm_08_58.h:128
@ OAP_AUTN_IE
Definition: oap.h:43
#define RSL_BCCH_CCCH_CONF_4_NC
Definition: gsm_08_58.h:577
int16_t rxlev_stat_get_next(const struct rxlev_stats *st, uint8_t rxlev, int16_t arfcn)
Definition: rxlev_stat.c:50
@ RSL_MT_SUSP_REQ
Definition: gsm_08_58.h:98
#define RLL_CAUSE_REEST_REQ
Definition: gsm_08_58.h:449
@ RSL_IE_RESOURCE_INFO
Definition: gsm_08_58.h:234
@ SYSINFO_TYPE_16
Definition: sysinfo.h:27
#define OSMO_EARFCN_INVALID
Definition: sysinfo.h:11
@ RSL_MT_IPAC_DLCX_IND
Definition: gsm_08_58.h:181
#define RSL_ERR_PROCESSOR_OVERLOAD
Definition: gsm_08_58.h:486
#define RSL_ERR_RES_UNAVAIL
Definition: gsm_08_58.h:487
int osmo_shift_tlv(uint8_t **data, size_t *data_len, uint8_t *tag, uint8_t **value, size_t *value_len)
Extract TLV and advance data pointer + subtract length.
Definition: tlv_parser.c:463
@ RSL_IE_IPAC_RTP_PAYLOAD2
Definition: gsm_08_58.h:300
@ RSL_MT_DATA_IND
Definition: gsm_08_58.h:88
int type
Definition: mncc.h:34
@ RSL_IE_EMLPP_PRIO
Definition: gsm_08_58.h:264
uint8_t * meas_bw
Definition: sysinfo.h:53
@ RSL_IE_FRAME_NUMBER
Definition: gsm_08_58.h:221
@ RSL_MT_BCCH_INFO
Definition: gsm_08_58.h:104
#define RSL_ACT_TYPE_INITIAL
Definition: gsm_08_58.h:377
#define RSL_ERR_IE_NONEXIST
Definition: gsm_08_58.h:504
osmo_static_assert(sizeof(struct gsm48_system_information_type_header)==3, _si_header_size)
@ RSL_IPAC_EIE_NCELL_BA_CHG_LIST
Definition: gsm_08_58.h:680
@ RSL_MT_PRE_HANDO_NOTIF
Definition: gsm_08_58.h:146
@ RSL_IE_SYSINFO_TYPE
Definition: gsm_08_58.h:243
@ RSL_IE_STARTNG_TIME
Definition: gsm_08_58.h:236
@ RSL_IE_REQ_REFERENCE
Definition: gsm_08_58.h:232
#define RSL_SYSTEM_INFO_6
Definition: gsm_08_58.h:518
uint8_t timeslot
E1 timeslot.
Definition: gsm_12_21.h:4
@ RSL_IE_IPAC_RTP_JIT_BUF
Definition: gsm_08_58.h:298
@ RSL_IPAC_EIE_NUM_OF_MS
Definition: gsm_08_58.h:681
@ RSL_MT_IPAC_MDCX_NACK
Definition: gsm_08_58.h:180
@ TLV_TYPE_FIXED
fixed-length value-only
Definition: tlv.h:402
@ RSL_IE_MAIN_CHAN_REF
Definition: gsm_08_58.h:266
@ RSL_MT_LOCATION_INFO
Definition: gsm_08_58.h:153
uint16_t len
length
Definition: tlv.h:395
static uint8_t * msgb_v_put(struct msgb *msg, uint8_t val)
put (append) a V field to a msgb
Definition: tlv.h:321
#define RSL_ERR_CCCH_OVERLOAD
Definition: gsm_08_58.h:484
uint8_t auts[14]
Definition: oap.h:76
@ RSL_IPAC_EIE_RXQUAL
Definition: gsm_08_58.h:667
#define RLL_CAUSE_SFRM_INC_PARAM
Definition: gsm_08_58.h:456
#define RSL_ERR_SERV_OPT_UNIMPL
Definition: gsm_08_58.h:493
@ RSL_MT_MS_POWER_CONTROL
Definition: gsm_08_58.h:136
const struct tlv_definition rsl_att_tlvdef
Definition: rsl.c:67
@ RSL_MT_IPAC_CONNECT_MUX
Definition: gsm_08_58.h:163
uint8_t ccch_conf
Definition: gsm_04_08.h:721
#define RSL_SYSTEM_INFO_20
Definition: gsm_08_58.h:535
@ TLV_TYPE_T
tag-only
Definition: tlv.h:403
int tlv_parse2(struct tlv_parsed *dec, int dec_multiples, const struct tlv_definition *def, const uint8_t *buf, int buf_len, uint8_t lv_tag, uint8_t lv_tag2)
Like tlv_parse(), but capable of decoding multiple occurences of the same IE.
Definition: tlv_parser.c:260
void osmo_oap_encode(struct msgb *msg, const struct osmo_oap_message *oap_msg)
Compose OAP message data.
Definition: oap.c:160
static const struct value_string rsl_rlm_cause_strs[]
Definition: rsl.c:411
@ RSL_MT_REL_IND
Definition: gsm_08_58.h:95
@ RSL_IPAC_EIE_BS_PWR_CTL
Definition: gsm_08_58.h:671
@ SYSINFO_TYPE_EMO
Definition: sysinfo.h:37
int osmo_earfcn_add(struct osmo_earfcn_si2q *e, uint16_t arfcn, uint8_t meas_bw)
Add pair of arfcn and measurement bandwith value to earfcn struct.
Definition: sysinfo.c:137
#define RLL_CAUSE_UNSOL_UA_RESP
Definition: gsm_08_58.h:450
@ RSL_IE_FULL_IMM_ASS_INFO
Definition: gsm_08_58.h:256
#define NUM_RXLEVS
Definition: rxlev_stat.h:5
uint8_t u8
Definition: common.h:18
#define RSL_ACT_SECOND_ADD
Definition: gsm_08_58.h:383
@ RSL_MT_MODE_MODIFY_NACK
Definition: gsm_08_58.h:132
#define RSL_SYSTEM_INFO_8
Definition: gsm_08_58.h:512
@ SYSINFO_TYPE_8
Definition: sysinfo.h:23
@ RSL_MT_CHAN_ACTIV_ACK
Definition: gsm_08_58.h:123
@ RSL_IE_IPAC_REMOTE_IP
Definition: gsm_08_58.h:288
@ RSL_IE_IPAC_REMOTE_PORT
Definition: gsm_08_58.h:289
@ RSL_IPAC_EIE_NCELL_DEF_EXT
Definition: gsm_08_58.h:683
char number[33]
Definition: mncc.h:38
@ RSL_MT_IPAC_MDCX_ACK
Definition: gsm_08_58.h:179
#define RSL_ERR_OM_INTERVENTION
Definition: gsm_08_58.h:477
@ RSL_MT_OVERLOAD
Definition: gsm_08_58.h:115
#define RSL_CHAN_SDCCH8_ACCH
Definition: gsm_08_58.h:370
static uint8_t * msgb_tv16_push(struct msgb *msg, uint8_t tag, uint16_t val)
push (prepend) a TV16 field to a msgb
Definition: tlv.h:355
const char * rsl_msg_name(uint8_t err)
Get human-readable string for RSL Message Type.
Definition: rsl.c:358
@ RSL_IE_IPAC_LOCAL_PORT
Definition: gsm_08_58.h:291
const struct value_string rsl_act_type_names[]
String names of RSL Channel Activation Types.
Definition: rsl.c:581
@ RSL_MT_IPAC_BIND_MUX
Definition: gsm_08_58.h:166
#define RSL_ERR_INVALID_MESSAGE
Definition: gsm_08_58.h:496
#define RSL_SYSTEM_INFO_2
Definition: gsm_08_58.h:514
osmo_sysinfo_type
Definition: sysinfo.h:14
@ RSL_IPAC_EIE_HO_CAND_EXT
Definition: gsm_08_58.h:682
struct tlv_p_entry lv[256]
Definition: tlv.h:425
@ RSL_IE_IPAC_LOCAL_IP
Definition: gsm_08_58.h:293
@ RSL_IE_MS_IDENTITY
Definition: gsm_08_58.h:225
#define RSL_ERR_MSG_DISCR
Definition: gsm_08_58.h:498
@ RSL_MT_RF_RES_IND
Definition: gsm_08_58.h:113
@ RSL_IPAC_EIE_3G_NCELL_LIST
Definition: gsm_08_58.h:690
#define RLL_CAUSE_FRM_UNIMPL
Definition: gsm_08_58.h:459
@ TLV_TYPE_TLV
tag-length-value
Definition: tlv.h:405
int osmo_oap_decode(struct osmo_oap_message *oap_msg, const uint8_t *data, size_t data_len)
Decode OAP message data.
Definition: oap.c:43
@ RSL_MT_ERROR_REPORT
Definition: gsm_08_58.h:116
@ RSL_IE_SMSCB_CHAN_INDICATOR
Definition: gsm_08_58.h:259
osmo_oap_iei
Information Element Identifiers for OAP IEs.
Definition: oap.h:40
@ RSL_IPAC_EIE_HO_THRESH_COMP
Definition: gsm_08_58.h:677
@ TLV_TYPE_TvLV
tag, variable length, value
Definition: tlv.h:407
@ RSL_IE_SMSCB_INFO
Definition: gsm_08_58.h:249
@ OAP_XRES_IE
Definition: oap.h:44
@ RSL_MT_IPAC_MDCX
Definition: gsm_08_58.h:178
Definition of All 256 IE / TLV.
Definition: tlv.h:419
@ SYSINFO_TYPE_7
Definition: sysinfo.h:22
@ RSL_IPAC_EIE_HO_CANDIDATES
Definition: gsm_08_58.h:679
@ RSL_IE_MEAS_RES_NR
Definition: gsm_08_58.h:240
Definition: gsm_08_58.h:40
#define RSL_ERR_T_MSRFPCI_EXP
Definition: gsm_08_58.h:479
const struct value_string osmo_mncc_names[]
#define RSL_BCCH_CCCH_CONF_3_NC
Definition: gsm_08_58.h:576
@ RSL_MT_CCCH_LOAD_IND
Definition: gsm_08_58.h:105
int autn_present
Definition: oap.h:71
@ RSL_IE_SACCH_INFO
Definition: gsm_08_58.h:257
@ SYSINFO_TYPE_2bis
Definition: sysinfo.h:32
#define RSL_ERR_TERR_CH_FAIL
Definition: gsm_08_58.h:483
void rsl_rll_push_l3(struct msgb *msg, uint8_t msg_type, uint8_t chan_nr, uint8_t link_id, int transparent)
Wrap msgb in L3 Info IE and push a RSL RLL header.
Definition: rsl.c:501
@ RSL_IE_IPAC_RTP_CSD_FMT
Definition: gsm_08_58.h:297
#define RSL_CHAN_PCH_AGCH
Definition: gsm_08_58.h:373
enum tlv_type type
TLV type.
Definition: tlv.h:414
@ RSL_MT_IPAC_DISC_MUX
Definition: gsm_08_58.h:169
void _osmo_mncc_log(int subsys, int level, const char *file, int line, const char *prefix, const uint8_t *msg, unsigned int len)
@ RSL_MT_IPAC_PDCH_ACT
Definition: gsm_08_58.h:157
#define RSL_ERR_PROTO
Definition: gsm_08_58.h:507
@ RSL_MT_RECON_REQ
Definition: gsm_08_58.h:101
#define RSL_ERR_ACCH_OVERLOAD
Definition: gsm_08_58.h:485
@ RSL_MT_SMS_BC_REQ
Definition: gsm_08_58.h:110
#define RSL_SYSTEM_INFO_18
Definition: gsm_08_58.h:533
@ RSL_MT_PREPROC_CONFIG
Definition: gsm_08_58.h:138
static const uint8_t sitype2rsl[_MAX_SYSINFO_TYPE]
Definition: sysinfo.c:52
#define RSL_ERR_RADIO_IF_FAIL
Definition: gsm_08_58.h:473
#define RSL_BCCH_CCCH_CONF_1_C
Definition: gsm_08_58.h:574
@ RSL_MT_CHAN_ACTIV_NACK
Definition: gsm_08_58.h:124
#define RSL_CHAN_Lm_ACCHs
Definition: gsm_08_58.h:368
@ RSL_IE_MR_CONTROL
Definition: gsm_08_58.h:268
@ RSL_IE_CHAN_IDENT
Definition: gsm_08_58.h:218
int present
Definition: mncc.h:36
@ RSL_MT_DEACTIVATE_SACCH
Definition: gsm_08_58.h:126
@ RSL_MT_IPAC_PDCH_ACT_ACK
Definition: gsm_08_58.h:158
@ RSL_MT_IPAC_CONNECT_MUX_ACK
Definition: gsm_08_58.h:164
@ RSL_MT_IPAC_DLCX_ACK
Definition: gsm_08_58.h:183
@ TLV_TYPE_TL16V
tag, 16 bit length, value
Definition: tlv.h:406
#define RSL_ERR_IE_LENGTH
Definition: gsm_08_58.h:505
#define RSL_ACT_SECOND_MULTI
Definition: gsm_08_58.h:384
@ RSL_IE_PYHS_CONTEXT
Definition: gsm_08_58.h:229
@ SYSINFO_TYPE_6
Definition: sysinfo.h:21
#define RLL_CAUSE_SEQ_ERR
Definition: gsm_08_58.h:454
@ RSL_MT_IPAC_DLCX
Definition: gsm_08_58.h:182
@ RSL_IPAC_EIE_SDCCH_CTL_PARAM
Definition: gsm_08_58.h:691
void rsl_init_cchan_hdr(struct abis_rsl_cchan_hdr *ch, uint8_t msg_type)
Initialize a RSL Common Channel header.
Definition: rsl.c:59
@ RSL_IE_BS_POWER
Definition: gsm_08_58.h:217
struct tlv_def def[256]
Definition: tlv.h:420
#define RSL_ERR_INTERWORKING
Definition: gsm_08_58.h:509
#define RSL_ERR_MSG_SEQ
Definition: gsm_08_58.h:500
void rxlev_stat_input(struct rxlev_stats *st, uint16_t arfcn, uint8_t rxlev)
Definition: rxlev_stat.c:36
#define RSL_ERR_HANDOVER_ACC_FAIL
Definition: gsm_08_58.h:475
@ RSL_IE_MSG_ID
Definition: gsm_08_58.h:241
uint8_t iei
Definition: gsm_08_58.h:4
@ RSL_IPAC_EIE_MASTER_KEY
Definition: gsm_08_58.h:685
@ RSL_IE_UIC
Definition: gsm_08_58.h:265
@ SYSINFO_TYPE_10
Definition: sysinfo.h:25
int rsl_ccch_conf_to_bs_ccch_sdcch_comb(int ccch_conf)
Definition: rsl.c:455
int osmo_match_shift_tv_fixed(uint8_t **data, size_t *data_len, uint8_t tag, size_t len, uint8_t **value)
Match tag, check length and assign value pointer.
Definition: tlv_parser.c:397
uint8_t type
Definition: gsm_04_08.h:713
@ RSL_MT_SMS_BC_CMD
Definition: gsm_08_58.h:117
static uint8_t * msgb_tlv_put(struct msgb *msg, uint8_t tag, uint8_t len, const uint8_t *val)
put (append) a TLV field to a msgb
Definition: tlv.h:296
#define RSL_ERR_NORMAL_UNSPEC
Definition: gsm_08_58.h:478
@ RSL_IPAC_EIE_PC_THRESH_COMP
Definition: gsm_08_58.h:676
struct msgb * rsl_rll_simple(uint8_t msg_type, uint8_t chan_nr, uint8_t link_id, int transparent)
Create msgb with RSL RLL header.
Definition: rsl.c:522
@ RSL_MT_DATA_REQ
Definition: gsm_08_58.h:87
void rxlev_stat_dump(const struct rxlev_stats *st)
Definition: rxlev_stat.c:72
@ RSL_IE_PREPROC_PARAM
Definition: gsm_08_58.h:246
@ RSL_IE_RLM_CAUSE
Definition: gsm_08_58.h:235
#define ABIS_RSL_MDISC_RLL
Definition: gsm_08_58.h:68
@ RSL_IPAC_EIE_HANDO_THRESH
Definition: gsm_08_58.h:673
@ TLV_TYPE_SINGLE_TV
tag and value (both 4 bit) in 1 byte
Definition: tlv.h:408
@ RSL_IE_ERR_MSG
Definition: gsm_08_58.h:251
@ RSL_IE_IMM_ASS_INFO
Definition: gsm_08_58.h:248
#define RSL_ALLOC_HEADROOM
Headroom size for RSL msgb_alloc.
Definition: rsl.c:43
#define RSL_SYSTEM_INFO_2bis
Definition: gsm_08_58.h:522
uint8_t rsl_enc_chan_nr(uint8_t type, uint8_t subch, uint8_t timeslot)
Encode channel number as per Section 9.3.1.
Definition: rsl.c:152
#define RSL_ERR_TRANSC_UNAVAIL
Definition: gsm_08_58.h:489
int xres_present
Definition: oap.h:73
@ RSL_IE_TFO_STATUS
Definition: gsm_08_58.h:272
@ RSL_IE_RTD
Definition: gsm_08_58.h:271
const char * rsl_rlm_cause_name(uint8_t err)
Get human-readable string for RLM cause.
Definition: rsl.c:430
@ RSL_IE_SUP_CODEC_TYPES
Definition: gsm_08_58.h:269
@ RSL_IE_IPAC_BSCMPL_TOUT
Definition: gsm_08_58.h:287
@ RSL_MT_IPAC_CRCX_ACK
Definition: gsm_08_58.h:176
@ RSL_MT_REMOTE_CODEC_CONF_REP
Definition: gsm_08_58.h:144
@ RSL_MT_IPAC_DISC_MUX_NACK
Definition: gsm_08_58.h:171
@ RSL_IE_IPAC_RTP_MPLEX_ID
Definition: gsm_08_58.h:302
@ SYSINFO_TYPE_18
Definition: sysinfo.h:29
static __attribute__((constructor))
Definition: tlv_parser.c:352
#define RSL_SYSTEM_INFO_13
Definition: gsm_08_58.h:529
@ RSL_IE_MR_CONFIG
Definition: gsm_08_58.h:267
@ SYSINFO_TYPE_19
Definition: sysinfo.h:30
int rsl_ccch_conf_to_bs_cc_chans(int ccch_conf)
Definition: rsl.c:436
@ RSL_MT_UNIT_DATA_REQ
Definition: gsm_08_58.h:96
@ RSL_MT_IPAC_PDCH_DEACT_ACK
Definition: gsm_08_58.h:161
enum osmo_sysinfo_type osmo_rsl2sitype(uint8_t rsl_si)
Definition: sysinfo.c:225
@ RSL_MT_CHAN_ACTIV
Definition: gsm_08_58.h:122
uint8_t fixed_len
length in case of TLV_TYPE_FIXED
Definition: tlv.h:415
@ SYSINFO_TYPE_1
Definition: sysinfo.h:16
@ RSL_MT_BS_POWER_CONTROL
Definition: gsm_08_58.h:137
uint8_t chan_nr
RSL channel number (value)
Definition: gsm_08_58.h:43
@ RSL_MT_CBCH_LOAD_IND
Definition: gsm_08_58.h:118
#define RSL_ACT_INTER_SYNC
Definition: gsm_08_58.h:382
void rxlev_stat_reset(struct rxlev_stats *st)
Definition: rxlev_stat.c:67
#define RSL_SYSTEM_INFO_19
Definition: gsm_08_58.h:534
@ RSL_MT_TALKER_DET
Definition: gsm_08_58.h:142
@ SYSINFO_TYPE_20
Definition: sysinfo.h:31
@ RSL_IE_IPAC_RTP_MPLEX
Definition: gsm_08_58.h:301
#define RSL_ALLOC_SIZE
Size for RSL msgb_alloc.
Definition: rsl.c:41
@ RSL_IE_CHAN_DESC
Definition: gsm_08_58.h:261
uint16_t * arfcn
Definition: sysinfo.h:50
@ RSL_IE_CBCH_LOAD_INFO
Definition: gsm_08_58.h:258
#define RLL_CAUSE_SABM_MF
Definition: gsm_08_58.h:460
@ RSL_MT_MODE_MODIFY_ACK
Definition: gsm_08_58.h:131
@ SYSINFO_TYPE_3
Definition: sysinfo.h:18
#define RSL_SYSTEM_INFO_7
Definition: gsm_08_58.h:519
@ OAP_CLIENT_ID_IE
Definition: oap.h:46
@ RSL_IPAC_EIE_NCELL_LIST_EXT
Definition: gsm_08_58.h:684
@ RSL_MT_IPAC_DLCX_NACK
Definition: gsm_08_58.h:184
#define RSL_ERR_RR_UNAVAIL
Definition: gsm_08_58.h:482
const struct tlv_definition rsl_ipac_eie_tlvdef
TLV parser definitions for IPA embedded IEs.
Definition: rsl.c:549
void rsl_init_rll_hdr(struct abis_rsl_rll_hdr *dh, uint8_t msg_type)
Initialize a RSL RLL header.
Definition: rsl.c:48
uint8_t ie_chan
RSL_IE_CHAN_NR (tag)
Definition: gsm_08_58.h:60
struct msgb * osmo_mncc_stringify(const uint8_t *msg, unsigned int len)
@ RSL_IPAC_EIE_HO_CAUSE
Definition: gsm_08_58.h:678
@ RSL_IE_IPAC_PROXY_UDP
Definition: gsm_08_58.h:286
const char * rsl_chan_nr_str(uint8_t chan_nr)
Get human-readable string for RSL channel number.
Definition: rsl.c:219
#define RSL_ERR_OPT_IE_ERROR
Definition: gsm_08_58.h:503
@ RSL_IE_ENCR_INFO
Definition: gsm_08_58.h:220
@ RSL_IE_GROUP_CALL_REF
Definition: gsm_08_58.h:260
#define ABIS_RSL_MDISC_TRANSP
Definition: gsm_08_58.h:79
@ RSL_MT_DELETE_IND
Definition: gsm_08_58.h:107
@ RSL_MT_CHAN_RQD
Definition: gsm_08_58.h:106
@ SYSINFO_TYPE_2quater
Definition: sysinfo.h:34
const char * rsl_ipac_msg_name(uint8_t msg_type)
Get human-readable name of ip.access RSL msg type.
Definition: rsl.c:395
@ RSL_MT_IPAC_CRCX
Definition: gsm_08_58.h:175
static const uint8_t rsl2sitype[256]
Definition: sysinfo.c:78
uint8_t msg_type
message type (abis_rsl_msgtype)
Definition: gsm_08_58.h:35
#define RSL_ERR_RADIO_LINK_FAIL
Definition: gsm_08_58.h:474
@ RSL_MT_IPAC_PDCH_ACT_NACK
Definition: gsm_08_58.h:159
@ GMM_CAUSE_PROTO_ERR_UNSPEC
Definition: gsm_04_08_gprs.h:227
#define RSL_ERR_IE_ERROR
Definition: gsm_08_58.h:501
@ RSL_IE_FULL_BCCH_INFO
Definition: gsm_08_58.h:252
@ RSL_MT_IPAC_CRCX_NACK
Definition: gsm_08_58.h:177
@ RSL_MT_IPAC_BIND_MUX_ACK
Definition: gsm_08_58.h:167
@ RSL_MT_TFO_MOD_REQ
Definition: gsm_08_58.h:152
#define ABIS_RSL_MDISC_COM_CHAN
Definition: gsm_08_58.h:72
#define RSL_ERR_RCH_ALR_ACTV_ALLOC
Definition: gsm_08_58.h:495
uint8_t rand[16]
Definition: oap.h:70
@ RSL_IE_L3_INFO
Definition: gsm_08_58.h:224
#define RSL_SYSTEM_INFO_5
Definition: gsm_08_58.h:517
@ TLV_TYPE_NONE
no type
Definition: tlv.h:401
@ RSL_MT_MR_CODEC_MOD_REQ
Definition: gsm_08_58.h:147
#define OSMO_EARFCN_MEAS_INVALID
Definition: sysinfo.h:12
struct abis_rsl_common_hdr c
Definition: gsm_08_58.h:41
@ RSL_MT_MR_CODEC_MOD_ACK
Definition: gsm_08_58.h:148
int osmo_shift_v_fixed(uint8_t **data, size_t *data_len, size_t len, uint8_t **value)
Advance the data pointer, subtract length and assign value pointer.
Definition: tlv_parser.c:369
@ RSL_IE_PREPROC_MEAS
Definition: gsm_08_58.h:247
#define RSL_ERR_MSG_TYPE
Definition: gsm_08_58.h:499
char version[20]
Definition: ipaccess.h:12
#define RSL_ACT_INTRA_NORM_ASS
Definition: gsm_08_58.h:380
uint8_t autn[16]
Definition: oap.h:72
@ RSL_IPAC_EIE_NCELL_LIST
Definition: gsm_08_58.h:675
@ RSL_MT_SACCH_INFO_MODIFY
Definition: gsm_08_58.h:141
#define RSL_ACT_OSMO_PDCH
Definition: gsm_08_58.h:385
@ RSL_MT_TFO_REP
Definition: gsm_08_58.h:151
#define RSL_CHAN_RACH
Definition: gsm_08_58.h:372
@ RSL_IE_TIMING_ADVANCE
Definition: gsm_08_58.h:237
struct tlv_definition vtvlv_gan_att_def
Definition: tlv_parser.c:49
#define RSL_SYSTEM_INFO_3
Definition: gsm_08_58.h:515
uint8_t link_id
RSL link identifier (value)
Definition: gsm_08_58.h:45
Parsed/decoded OAP protocol message.
Definition: oap.h:65
@ SYSINFO_TYPE_5
Definition: sysinfo.h:20
@ RSL_IE_LLP_APDU
Definition: gsm_08_58.h:273
#define RSL_CHAN_Bm_ACCHs
Definition: gsm_08_58.h:367
@ RSL_IE_HANDO_REF
Definition: gsm_08_58.h:222
int osmo_earfcn_del(struct osmo_earfcn_si2q *e, uint16_t arfcn)
Delete arfcn (and corresponding measurement bandwith) from earfcn struct.
Definition: sysinfo.c:195
@ RSL_MT_MR_CODEC_MOD_NACK
Definition: gsm_08_58.h:149
uint8_t chan_nr
RSL channel number (value)
Definition: gsm_04_08.h:2
@ RSL_IE_CODEC_CONFIG
Definition: gsm_08_58.h:270
@ RSL_MT_RF_CHAN_REL_ACK
Definition: gsm_08_58.h:140
@ RSL_MT_EST_CONF
Definition: gsm_08_58.h:91
@ RSL_MT_ENCR_CMD
Definition: gsm_08_58.h:127
@ RSL_IE_CAUSE
Definition: gsm_08_58.h:239
#define RSL_SYSTEM_INFO_2ter
Definition: gsm_08_58.h:523
@ RSL_MT_PREPROC_MEAS_RES
Definition: gsm_08_58.h:139
@ RSL_IE_RACH_LOAD
Definition: gsm_08_58.h:231
#define RSL_SYSTEM_INFO_1
Definition: gsm_08_58.h:513
uint8_t msg_discr
message discriminator (ABIS_RSL_MDISC_*)
Definition: gsm_08_58.h:34
#define RSL_BCCH_CCCH_CONF_2_NC
Definition: gsm_08_58.h:575
@ RSL_MT_RES_REQ
Definition: gsm_08_58.h:100
@ RSL_MT_RF_CHAN_REL
Definition: gsm_08_58.h:135
#define RSL_SYSTEM_INFO_10
Definition: gsm_08_58.h:526
@ RSL_MT_IMMEDIATE_ASSIGN_CMD
Definition: gsm_08_58.h:109
@ RSL_IE_IPAC_CONN_ID
Definition: gsm_08_58.h:296
@ RSL_MT_MEAS_RES
Definition: gsm_08_58.h:129
int rsl_dec_chan_nr(uint8_t chan_nr, uint8_t *type, uint8_t *subch, uint8_t *timeslot)
Decode RSL channel number.
Definition: rsl.c:184
#define RSL_CHAN_OSMO_PDCH
Definition: gsm_08_58.h:374
#define RLL_CAUSE_UNSOL_DM_RESP_MF
Definition: gsm_08_58.h:452
@ RSL_IE_IPAC_RTP_PAYLOAD
Definition: gsm_08_58.h:290
#define RSL_ERR_MAND_IE_ERROR
Definition: gsm_08_58.h:502
@ RSL_IE_CB_CMD_TYPE
Definition: gsm_08_58.h:254
enum osmo_oap_message_type message_type
Definition: oap.h:66
@ SYSINFO_TYPE_2
Definition: sysinfo.h:17
uint16_t client_id
Definition: oap.h:68
@ RSL_MT_IPAC_DISC_MUX_ACK
Definition: gsm_08_58.h:170
@ RSL_IPAC_EIE_MASTER_SALT
Definition: gsm_08_58.h:686
static const char * osmo_mncc_name(uint32_t msg_type)
Definition: mncc.h:96
@ SYSINFO_TYPE_5ter
Definition: sysinfo.h:36
@ RSL_MT_NOT_CMD
Definition: gsm_08_58.h:119
@ _MAX_SYSINFO_TYPE
Definition: sysinfo.h:45
void rsl_rll_push_hdr(struct msgb *msg, uint8_t msg_type, uint8_t chan_nr, uint8_t link_id, int transparent)
Push a RSL RLL header onto an existing msgb.
Definition: rsl.c:479
@ RSL_IPAC_EIE_AMR_CONV_THRESH
Definition: gsm_08_58.h:692
#define RSL_ERR_EQUIPMENT_FAIL
Definition: gsm_08_58.h:481
@ SYSINFO_TYPE_5bis
Definition: sysinfo.h:35
@ RSL_MT_IPAC_CONNECT_MUX_NACK
Definition: gsm_08_58.h:165
#define RSL_SYSTEM_INFO_16
Definition: gsm_08_58.h:520
int osmo_match_shift_tlv(uint8_t **data, size_t *data_len, uint8_t tag, uint8_t **value, size_t *value_len)
Verify TLV header and advance data / subtract length.
Definition: tlv_parser.c:435
@ RSL_MT_ERROR_IND
Definition: gsm_08_58.h:89
uint8_t msg_type
Definition: gsm_04_08.h:710
@ RSL_IPAC_EIE_NCELL_DEFAULTS
Definition: gsm_08_58.h:674
@ RSL_IE_PAGING_GROUP
Definition: gsm_08_58.h:227
size_t osmo_earfcn_bit_size(const struct osmo_earfcn_si2q *e)
Return number of bits necessary to represent earfcn struct as Repeated E-UTRAN Neighbour Cells IE fro...
Definition: sysinfo.c:155
@ RSL_MT_PHY_CONTEXT_CONF
Definition: gsm_08_58.h:134
@ RSL_MT_MR_CODEC_MOD_PER
Definition: gsm_08_58.h:150
@ RSL_IE_MS_POWER
Definition: gsm_08_58.h:226
#define RSL_SYSTEM_INFO_2quater
Definition: gsm_08_58.h:531
int rand_present
Definition: oap.h:69
@ RSL_MT_PAGING_CMD
Definition: gsm_08_58.h:108
@ RSL_IE_ACT_TYPE
Definition: gsm_08_58.h:216
bool qrxlm_valid
Definition: sysinfo.h:70
@ RSL_IE_MS_TIMING_OFFSET
Definition: gsm_08_58.h:250
int osmo_shift_lv(uint8_t **data, size_t *data_len, uint8_t **value, size_t *value_len)
Extract LV and advance data pointer + subtract length.
Definition: tlv_parser.c:503
#define RSL_ERR_TALKER_ACC_FAIL
Definition: gsm_08_58.h:476
@ RSL_IE_BS_POWER_PARAM
Definition: gsm_08_58.h:245
#define RLL_CAUSE_UFRM_INC_PARAM
Definition: gsm_08_58.h:455
#define RSL_CHAN_SDCCH4_ACCH
Definition: gsm_08_58.h:369
#define RSL_SYSTEM_INFO_17
Definition: gsm_08_58.h:521
@ RSL_MT_EST_REQ
Definition: gsm_08_58.h:90
@ RSL_IPAC_EIE_3G_HO_PARAM
Definition: gsm_08_58.h:689
@ RSL_IPAC_EIE_MS_PWR_CTL
Definition: gsm_08_58.h:672
Definition: gsm_08_58.h:58
@ RSL_IE_RELEASE_MODE
Definition: gsm_08_58.h:233
@ SYSINFO_TYPE_9
Definition: sysinfo.h:24
#define RSL_BCCH_CCCH_CONF_1_NC
Definition: gsm_08_58.h:573
Definition: gsm_04_08.h:581
@ RSL_MT_CHAN_CONF
Definition: gsm_08_58.h:111
int screen
Definition: mncc.h:37
#define RSL_ACT_TYPE_REACT
Definition: gsm_08_58.h:378
int auts_present
Definition: oap.h:75
size_t length
Definition: sysinfo.h:55
static const struct value_string rsl_err_vals[]
Definition: rsl.c:245
@ RSL_IPAC_EIE_RXLEV
Definition: gsm_08_58.h:666
static const struct value_string rsl_ipac_msgt_names[]
ip.access specific
Definition: rsl.c:364
void osmo_earfcn_init(struct osmo_earfcn_si2q *e)
Initialize earfcn struct.
Definition: sysinfo.c:211
result of the TLV parser
Definition: tlv.h:424
@ RSL_MT_IPAC_DIR_RETR_ENQ
Definition: gsm_08_58.h:156
@ RSL_IPAC_EIE_MEAS_TRANS_RES
Definition: gsm_08_58.h:688
@ RSL_MT_UNIT_DATA_IND
Definition: gsm_08_58.h:97
#define RLL_CAUSE_UNSOL_SPRV_RESP
Definition: gsm_08_58.h:453
#define RSL_SYSTEM_INFO_4
Definition: gsm_08_58.h:516
@ RSL_IPAC_EIE_MEAS_AVG_CFG
Definition: gsm_08_58.h:670
@ TLV_TYPE_vTvLV_GAN
variable-length tag, variable-length length
Definition: tlv.h:409
int tlv_dump(struct tlv_parsed *dec)
Dump parsed TLV structure to stdout.
Definition: tlv_parser.c:52
@ TLV_TYPE_TV
tag-value (8bit)
Definition: tlv.h:404
#define RSL_ACT_INTRA_IMM_ASS
Definition: gsm_08_58.h:379
Definition: rxlev_stat.h:8
uint8_t ie_chan
RSL_IE_CHAN_NR (tag)
Definition: gsm_08_58.h:42
@ RSL_IE_LINK_IDENT
Definition: gsm_08_58.h:215
#define RSL_ERR_ENCR_UNIMPL
Definition: gsm_08_58.h:492
bool prio_valid
Definition: sysinfo.h:68
enum gsm48_gmm_cause cause
Definition: oap.h:67
@ RSL_IE_L1_INFO
Definition: gsm_08_58.h:223
@ SYSINFO_TYPE_4
Definition: sysinfo.h:19
@ RSL_MT_EST_IND
Definition: gsm_08_58.h:92