Loading...
Searching...
No Matches
cbsp.h
Go to the documentation of this file.
#pragma once
#include <stdint.h>
#include <osmocom/core/linuxlist.h>
#include <osmocom/gsm/protocol/gsm_48_049.h>
#include <osmocom/gsm/gsm0808_utils.h>
/* Definitions for parsed / abstract representation of messages in the
* CBSP (Cell Broadcast Service Protocol, 3GPP TS 48.049). Data here is *not* formatted
* like the on-the-wire format. Any similarities are coincidential ;) */
/* Copyright (C) 2019 Harald Welte <laforge@gnumonks.org>
*
* All Rights Reserved
*
* SPDX-License-Identifier: GPL-2.0+
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
/* Decoded 8.2.3 Message Content */
struct osmo_cbsp_content {
struct llist_head list;
uint8_t user_len;
uint8_t data[82];
};
/* Decoded Entry in a 8.2.6 Cell List */
struct osmo_cbsp_cell_ent {
struct llist_head list; /* entry in osmo_cbsp_cell_list.list */
union gsm0808_cell_id_u cell_id;
};
struct osmo_cbsp_cell_list {
enum CELL_IDENT id_discr;
struct llist_head list; /* list of osmo_cbsp_cell_ent */
};
/* Decoded Entry in a 8.2.10 Completed List */
struct osmo_cbsp_num_compl_ent {
struct llist_head list; /* entry in osmo_cbsp_num_compl_list.list */
union gsm0808_cell_id_u cell_id;
uint16_t num_compl;
uint8_t num_bcast_info;
};
struct osmo_cbsp_num_compl_list {
enum CELL_IDENT id_discr;
struct llist_head list; /* list of osmo_cbsp_num_compl_ent */
};
/* Decoded Entry in a 8.2.12 Radio Resource Loading List */
struct osmo_cbsp_loading_ent {
struct llist_head list; /* entry in osmo_cbsp_loading_list */
union gsm0808_cell_id_u cell_id;
uint8_t load[2];
};
struct osmo_cbsp_loading_list {
enum CELL_IDENT id_discr;
struct llist_head list; /* list of osmo_cbsp_loading_ent */
};
/* Decoded Entry in a 8.2.11 Failure List */
struct osmo_cbsp_fail_ent {
struct llist_head list; /* entry in a fail_list below */
enum CELL_IDENT id_discr;
union gsm0808_cell_id_u cell_id;
uint8_t cause; /* enum osmo_cbsp_cause */
};
/* 8.1.3.1 */
struct osmo_cbsp_write_replace {
uint16_t msg_id; /* 8.2.16 M */
uint16_t new_serial_nr; /* 8.2.5 M */
uint16_t *old_serial_nr; /* 8.2.4 */
struct osmo_cbsp_cell_list cell_list;
bool is_cbs;
union {
struct {
enum cbsp_channel_ind channel_ind;
enum cbsp_category category;
uint16_t rep_period;
uint16_t num_bcast_req;
/* num_of_pages implicit as llist_count(msg_content) */
uint8_t dcs;
struct llist_head msg_content;
} cbs;
struct {
uint8_t indicator;
uint16_t warning_type;
uint8_t warning_sec_info[50];
uint32_t warning_period; /* in seconds; 0xffffffff = unlimited */
} emergency;
} u;
};
/* 8.1.3.2 */
struct osmo_cbsp_write_replace_complete {
uint16_t msg_id;
uint16_t new_serial_nr;
uint16_t *old_serial_nr;
struct osmo_cbsp_num_compl_list num_compl_list;
struct osmo_cbsp_cell_list cell_list;
enum cbsp_channel_ind *channel_ind;
};
/* 8.1.3.3 */
struct osmo_cbsp_write_replace_failure {
uint16_t msg_id;
uint16_t new_serial_nr;
uint16_t *old_serial_nr;
struct llist_head fail_list; /* list of osmo_cbsp_fail_ent */
struct osmo_cbsp_num_compl_list num_compl_list;
struct osmo_cbsp_cell_list cell_list;
enum cbsp_channel_ind *channel_ind;
};
/* 8.1.3.4 */
struct osmo_cbsp_kill {
uint16_t msg_id;
uint16_t old_serial_nr;
struct osmo_cbsp_cell_list cell_list;
enum cbsp_channel_ind *channel_ind;
};
/* 8.1.3.5 */
struct osmo_cbsp_kill_complete {
uint16_t msg_id;
uint16_t old_serial_nr;
struct osmo_cbsp_num_compl_list num_compl_list;
struct osmo_cbsp_cell_list cell_list;
enum cbsp_channel_ind *channel_ind;
};
/* 8.1.3.6 */
struct osmo_cbsp_kill_failure {
uint16_t msg_id;
uint16_t old_serial_nr;
struct llist_head fail_list; /* list of osmo_cbsp_fail_ent */
struct osmo_cbsp_num_compl_list num_compl_list;
struct osmo_cbsp_cell_list cell_list;
enum cbsp_channel_ind *channel_ind;
};
/* 8.1.3.7 */
struct osmo_cbsp_load_query {
struct osmo_cbsp_cell_list cell_list;
enum cbsp_channel_ind channel_ind;
};
/* 8.1.3.8 */
struct osmo_cbsp_load_query_complete {
struct osmo_cbsp_loading_list loading_list;
enum cbsp_channel_ind channel_ind;
};
/* 8.1.3.9 */
struct osmo_cbsp_load_query_failure {
struct llist_head fail_list; /* list of osmo_cbsp_fail_ent */
enum cbsp_channel_ind channel_ind;
struct osmo_cbsp_loading_list loading_list;
};
/* 8.1.3.10 */
struct osmo_cbsp_msg_status_query {
uint16_t msg_id;
uint16_t old_serial_nr;
struct osmo_cbsp_cell_list cell_list;
enum cbsp_channel_ind channel_ind;
};
/* 8.1.3.11 */
struct osmo_cbsp_msg_status_query_complete {
uint16_t msg_id;
uint16_t old_serial_nr;
struct osmo_cbsp_num_compl_list num_compl_list;
enum cbsp_channel_ind channel_ind;
};
/* 8.1.3.12 */
struct osmo_cbsp_msg_status_query_failure {
uint16_t msg_id;
uint16_t old_serial_nr;
struct llist_head fail_list; /* list of osmo_cbsp_fail_ent */
enum cbsp_channel_ind channel_ind;
struct osmo_cbsp_num_compl_list num_compl_list;
};
/* 8.1.3.16 */
struct osmo_cbsp_reset {
struct osmo_cbsp_cell_list cell_list;
};
/* 8.1.3.17 */
struct osmo_cbsp_reset_complete {
struct osmo_cbsp_cell_list cell_list;
};
/* 8.1.3.18 */
struct osmo_cbsp_reset_failure {
struct llist_head fail_list; /* list of osmo_cbsp_fail_ent */
struct osmo_cbsp_cell_list cell_list;
};
/* 8.1.3.18a */
struct osmo_cbsp_keep_alive {
uint8_t repetition_period;
};
/* 8.1.3.18b */
struct osmo_cbsp_keep_alive_complete {
};
/* 8.1.3.19 */
struct osmo_cbsp_restart {
struct osmo_cbsp_cell_list cell_list;
uint8_t bcast_msg_type;
uint8_t recovery_ind;
};
/* 8.1.3.20 */
struct osmo_cbsp_failure {
struct llist_head fail_list; /* list of osmo_cbsp_fail_ent */
uint8_t bcast_msg_type;
};
/* 8.1.3.21 */
struct osmo_cbsp_error_ind {
enum cbsp_cell_id_cause cause;
uint16_t *msg_id;
uint16_t *new_serial_nr;
uint16_t *old_serial_nr;
enum cbsp_channel_ind *channel_ind;
};
/* 8.2.13 Cause */
enum osmo_cbsp_cause {
OSMO_CBSP_CAUSE_PARAM_NOT_RECOGNISED = 0,
OSMO_CBSP_CAUSE_PARAM_VALUE_INVALID,
OSMO_CBSP_CAUSE_MSG_REF_NOT_IDENTIFIED,
OSMO_CBSP_CAUSE_CELL_ID_NOT_VALID,
OSMO_CBSP_CAUSE_UNRECOGNISED_MESSAGE,
OSMO_CBSP_CAUSE_MISSING_MANDATORY_ELEMENT,
OSMO_CBSP_CAUSE_BSC_CAPACITY_EXCEEDED,
OSMO_CBSP_CAUSE_CELL_MEMORY_EXCEEDED,
OSMO_CBSP_CAUSE_BSC_MEMORY_EXCEEDED,
OSMO_CBSP_CAUSE_CELL_BROADCAST_NOT_SUPPORTED,
OSMO_CBSP_CAUSE_CELL_BROADCAST_NOT_OPERATIONAL,
OSMO_CBSP_CAUSE_INCOMPATIBLE_DRX_PARAM,
OSMO_CBSP_CAUSE_EXT_CHAN_NOT_SUPPORTED,
OSMO_CBSP_CAUSE_MSG_REF_ALREADY_USED,
OSMO_CBSP_CAUSE_UNSPECIFIED_ERROR,
OSMO_CBSP_CAUSE_LAI_OR_LAC_NOT_VALID,
};
extern const struct value_string osmo_cbsp_cause_names[];
static inline const char *osmo_cbsp_cause_name(enum osmo_cbsp_cause cause)
{
return get_value_string(osmo_cbsp_cause_names, cause);
}
/* decoded CBSP message */
struct osmo_cbsp_decoded {
enum cbsp_msg_type msg_type;
union {
struct osmo_cbsp_write_replace write_replace;
struct osmo_cbsp_write_replace_complete write_replace_compl;
struct osmo_cbsp_write_replace_failure write_replace_fail;
struct osmo_cbsp_kill kill;
struct osmo_cbsp_kill_complete kill_compl;
struct osmo_cbsp_kill_failure kill_fail;
struct osmo_cbsp_load_query load_query;
struct osmo_cbsp_load_query_complete load_query_compl;
struct osmo_cbsp_load_query_failure load_query_fail;
struct osmo_cbsp_msg_status_query msg_status_query;
struct osmo_cbsp_msg_status_query_complete msg_status_query_compl;
struct osmo_cbsp_msg_status_query_failure msg_status_query_fail;
/* TODO: set DRX */
struct osmo_cbsp_reset reset;
struct osmo_cbsp_reset_complete reset_compl;
struct osmo_cbsp_reset_failure reset_fail;
struct osmo_cbsp_restart restart;
struct osmo_cbsp_failure failure;
struct osmo_cbsp_error_ind error_ind;
struct osmo_cbsp_keep_alive keep_alive;
struct osmo_cbsp_keep_alive_complete keep_alive_compl;
} u;
};
extern __thread const char *osmo_cbsp_errstr;
struct msgb *osmo_cbsp_msgb_alloc(void *ctx, const char *name);
struct msgb *osmo_cbsp_encode(void *ctx, const struct osmo_cbsp_decoded *in);
struct osmo_cbsp_decoded *osmo_cbsp_decode(void *ctx, struct msgb *in);
void osmo_cbsp_init_struct(struct osmo_cbsp_decoded *cbsp, enum cbsp_msg_type msg_type);
struct osmo_cbsp_decoded *osmo_cbsp_decoded_alloc(void *ctx, enum cbsp_msg_type msg_type);
int osmo_cbsp_recv_buffered(void *ctx, int fd, struct msgb **rmsg, struct msgb **tmp_msg);
int osmo_cbsp_segmentation_cb(struct msgb *msg);
osmo_cbsp_errstr
__thread const char * osmo_cbsp_errstr
Definition cbsp.c:33
osmo_cbsp_cause
osmo_cbsp_cause
Definition cbsp.h:245
OSMO_CBSP_CAUSE_UNRECOGNISED_MESSAGE
@ OSMO_CBSP_CAUSE_UNRECOGNISED_MESSAGE
Definition cbsp.h:250
OSMO_CBSP_CAUSE_PARAM_NOT_RECOGNISED
@ OSMO_CBSP_CAUSE_PARAM_NOT_RECOGNISED
Definition cbsp.h:246
OSMO_CBSP_CAUSE_LAI_OR_LAC_NOT_VALID
@ OSMO_CBSP_CAUSE_LAI_OR_LAC_NOT_VALID
Definition cbsp.h:261
OSMO_CBSP_CAUSE_UNSPECIFIED_ERROR
@ OSMO_CBSP_CAUSE_UNSPECIFIED_ERROR
Definition cbsp.h:260
OSMO_CBSP_CAUSE_MSG_REF_ALREADY_USED
@ OSMO_CBSP_CAUSE_MSG_REF_ALREADY_USED
Definition cbsp.h:259
OSMO_CBSP_CAUSE_MISSING_MANDATORY_ELEMENT
@ OSMO_CBSP_CAUSE_MISSING_MANDATORY_ELEMENT
Definition cbsp.h:251
OSMO_CBSP_CAUSE_CELL_BROADCAST_NOT_SUPPORTED
@ OSMO_CBSP_CAUSE_CELL_BROADCAST_NOT_SUPPORTED
Definition cbsp.h:255
OSMO_CBSP_CAUSE_PARAM_VALUE_INVALID
@ OSMO_CBSP_CAUSE_PARAM_VALUE_INVALID
Definition cbsp.h:247
OSMO_CBSP_CAUSE_CELL_MEMORY_EXCEEDED
@ OSMO_CBSP_CAUSE_CELL_MEMORY_EXCEEDED
Definition cbsp.h:253
OSMO_CBSP_CAUSE_EXT_CHAN_NOT_SUPPORTED
@ OSMO_CBSP_CAUSE_EXT_CHAN_NOT_SUPPORTED
Definition cbsp.h:258
OSMO_CBSP_CAUSE_BSC_CAPACITY_EXCEEDED
@ OSMO_CBSP_CAUSE_BSC_CAPACITY_EXCEEDED
Definition cbsp.h:252
OSMO_CBSP_CAUSE_CELL_ID_NOT_VALID
@ OSMO_CBSP_CAUSE_CELL_ID_NOT_VALID
Definition cbsp.h:249
OSMO_CBSP_CAUSE_CELL_BROADCAST_NOT_OPERATIONAL
@ OSMO_CBSP_CAUSE_CELL_BROADCAST_NOT_OPERATIONAL
Definition cbsp.h:256
OSMO_CBSP_CAUSE_INCOMPATIBLE_DRX_PARAM
@ OSMO_CBSP_CAUSE_INCOMPATIBLE_DRX_PARAM
Definition cbsp.h:257
OSMO_CBSP_CAUSE_MSG_REF_NOT_IDENTIFIED
@ OSMO_CBSP_CAUSE_MSG_REF_NOT_IDENTIFIED
Definition cbsp.h:248
OSMO_CBSP_CAUSE_BSC_MEMORY_EXCEEDED
@ OSMO_CBSP_CAUSE_BSC_MEMORY_EXCEEDED
Definition cbsp.h:254
osmo_cbsp_msgb_alloc
struct msgb * osmo_cbsp_msgb_alloc(void *ctx, const char *name)
Definition cbsp.c:35
osmo_cbsp_cause_name
static const char * osmo_cbsp_cause_name(enum osmo_cbsp_cause cause)
Definition cbsp.h:264
osmo_cbsp_cause_names
const struct value_string osmo_cbsp_cause_names[]
osmo_cbsp_segmentation_cb
int osmo_cbsp_segmentation_cb(struct msgb *msg)
osmo_cbsp_decoded_alloc
struct osmo_cbsp_decoded * osmo_cbsp_decoded_alloc(void *ctx, enum cbsp_msg_type msg_type)
Dynamically allocate and initialize decoded CBSP structure.
Definition cbsp.c:1455
osmo_cbsp_recv_buffered
int osmo_cbsp_recv_buffered(void *ctx, int fd, struct msgb **rmsg, struct msgb **tmp_msg)
osmo_cbsp_decode
struct osmo_cbsp_decoded * osmo_cbsp_decode(void *ctx, struct msgb *in)
Decode a CBSP message from wire formwat to pased structure.
Definition cbsp.c:1262
osmo_cbsp_encode
struct msgb * osmo_cbsp_encode(void *ctx, const struct osmo_cbsp_decoded *in)
Encode a CBSP message from the decoded/parsed structure representation to binary PDU.
Definition cbsp.c:402
osmo_cbsp_init_struct
void osmo_cbsp_init_struct(struct osmo_cbsp_decoded *cbsp, enum cbsp_msg_type msg_type)
Definition cbsp.c:1381
get_value_string
const char * get_value_string(const struct value_string *vs, uint32_t val)
gsm0808_utils.h
cause
uint8_t cause
Definition gsm_04_08.h:2
msg
uint8_t msg[0]
Definition gsm_08_08.h:8
CELL_IDENT
CELL_IDENT
Definition gsm_08_08.h:17
warning_sec_info
uint8_t warning_sec_info[50]
Definition gsm_23_041.h:3
gsm_48_049.h
cbsp_cell_id_cause
cbsp_cell_id_cause
Definition gsm_48_049.h:94
cbsp_category
cbsp_category
Definition gsm_48_049.h:77
cbsp_msg_type
cbsp_msg_type
Definition gsm_48_049.h:50
cbsp_channel_ind
cbsp_channel_ind
Definition gsm_48_049.h:114
linuxlist.h
llist_head
msgb
osmo_cbsp_cell_ent
Definition cbsp.h:37
osmo_cbsp_cell_ent::cell_id
union gsm0808_cell_id_u cell_id
Definition cbsp.h:39
osmo_cbsp_cell_ent::list
struct llist_head list
Definition cbsp.h:38
osmo_cbsp_cell_list
Definition cbsp.h:41
osmo_cbsp_cell_list::list
struct llist_head list
Definition cbsp.h:43
osmo_cbsp_cell_list::id_discr
enum CELL_IDENT id_discr
Definition cbsp.h:42
osmo_cbsp_content
Definition cbsp.h:30
osmo_cbsp_content::list
struct llist_head list
Definition cbsp.h:31
osmo_cbsp_content::data
uint8_t data[82]
Definition cbsp.h:33
osmo_cbsp_content::user_len
uint8_t user_len
Definition cbsp.h:32
osmo_cbsp_decoded
Definition cbsp.h:270
osmo_cbsp_decoded::msg_status_query_fail
struct osmo_cbsp_msg_status_query_failure msg_status_query_fail
Definition cbsp.h:287
osmo_cbsp_decoded::reset_compl
struct osmo_cbsp_reset_complete reset_compl
Definition cbsp.h:292
osmo_cbsp_decoded::reset
struct osmo_cbsp_reset reset
Definition cbsp.h:291
osmo_cbsp_decoded::keep_alive
struct osmo_cbsp_keep_alive keep_alive
Definition cbsp.h:301
osmo_cbsp_decoded::restart
struct osmo_cbsp_restart restart
Definition cbsp.h:295
osmo_cbsp_decoded::reset_fail
struct osmo_cbsp_reset_failure reset_fail
Definition cbsp.h:293
osmo_cbsp_decoded::kill_compl
struct osmo_cbsp_kill_complete kill_compl
Definition cbsp.h:278
osmo_cbsp_decoded::load_query_compl
struct osmo_cbsp_load_query_complete load_query_compl
Definition cbsp.h:282
osmo_cbsp_decoded::keep_alive_compl
struct osmo_cbsp_keep_alive_complete keep_alive_compl
Definition cbsp.h:302
osmo_cbsp_decoded::kill_fail
struct osmo_cbsp_kill_failure kill_fail
Definition cbsp.h:279
osmo_cbsp_decoded::msg_type
enum cbsp_msg_type msg_type
Definition cbsp.h:271
osmo_cbsp_decoded::msg_status_query
struct osmo_cbsp_msg_status_query msg_status_query
Definition cbsp.h:285
osmo_cbsp_decoded::load_query
struct osmo_cbsp_load_query load_query
Definition cbsp.h:281
osmo_cbsp_decoded::error_ind
struct osmo_cbsp_error_ind error_ind
Definition cbsp.h:299
osmo_cbsp_decoded::write_replace
struct osmo_cbsp_write_replace write_replace
Definition cbsp.h:273
osmo_cbsp_decoded::write_replace_fail
struct osmo_cbsp_write_replace_failure write_replace_fail
Definition cbsp.h:275
osmo_cbsp_decoded::msg_status_query_compl
struct osmo_cbsp_msg_status_query_complete msg_status_query_compl
Definition cbsp.h:286
osmo_cbsp_decoded::load_query_fail
struct osmo_cbsp_load_query_failure load_query_fail
Definition cbsp.h:283
osmo_cbsp_decoded::kill
struct osmo_cbsp_kill kill
Definition cbsp.h:277
osmo_cbsp_decoded::write_replace_compl
struct osmo_cbsp_write_replace_complete write_replace_compl
Definition cbsp.h:274
osmo_cbsp_decoded::u
union osmo_cbsp_decoded::@3 u
osmo_cbsp_decoded::failure
struct osmo_cbsp_failure failure
Definition cbsp.h:297
osmo_cbsp_error_ind
Definition cbsp.h:236
osmo_cbsp_error_ind::new_serial_nr
uint16_t * new_serial_nr
Definition cbsp.h:239
osmo_cbsp_error_ind::old_serial_nr
uint16_t * old_serial_nr
Definition cbsp.h:240
osmo_cbsp_error_ind::msg_id
uint16_t * msg_id
Definition cbsp.h:238
osmo_cbsp_error_ind::channel_ind
enum cbsp_channel_ind * channel_ind
Definition cbsp.h:241
osmo_cbsp_error_ind::cause
enum cbsp_cell_id_cause cause
Definition cbsp.h:237
osmo_cbsp_fail_ent
Definition cbsp.h:70
osmo_cbsp_fail_ent::cause
uint8_t cause
Definition cbsp.h:74
osmo_cbsp_fail_ent::cell_id
union gsm0808_cell_id_u cell_id
Definition cbsp.h:73
osmo_cbsp_fail_ent::id_discr
enum CELL_IDENT id_discr
Definition cbsp.h:72
osmo_cbsp_fail_ent::list
struct llist_head list
Definition cbsp.h:71
osmo_cbsp_failure
Definition cbsp.h:230
osmo_cbsp_failure::fail_list
struct llist_head fail_list
Definition cbsp.h:231
osmo_cbsp_failure::bcast_msg_type
uint8_t bcast_msg_type
Definition cbsp.h:232
osmo_cbsp_keep_alive_complete
Definition cbsp.h:219
osmo_cbsp_keep_alive
Definition cbsp.h:214
osmo_cbsp_keep_alive::repetition_period
uint8_t repetition_period
Definition cbsp.h:215
osmo_cbsp_kill_complete
Definition cbsp.h:135
osmo_cbsp_kill_complete::old_serial_nr
uint16_t old_serial_nr
Definition cbsp.h:137
osmo_cbsp_kill_complete::cell_list
struct osmo_cbsp_cell_list cell_list
Definition cbsp.h:139
osmo_cbsp_kill_complete::channel_ind
enum cbsp_channel_ind * channel_ind
Definition cbsp.h:140
osmo_cbsp_kill_complete::num_compl_list
struct osmo_cbsp_num_compl_list num_compl_list
Definition cbsp.h:138
osmo_cbsp_kill_complete::msg_id
uint16_t msg_id
Definition cbsp.h:136
osmo_cbsp_kill_failure
Definition cbsp.h:144
osmo_cbsp_kill_failure::fail_list
struct llist_head fail_list
Definition cbsp.h:147
osmo_cbsp_kill_failure::msg_id
uint16_t msg_id
Definition cbsp.h:145
osmo_cbsp_kill_failure::old_serial_nr
uint16_t old_serial_nr
Definition cbsp.h:146
osmo_cbsp_kill_failure::num_compl_list
struct osmo_cbsp_num_compl_list num_compl_list
Definition cbsp.h:148
osmo_cbsp_kill_failure::channel_ind
enum cbsp_channel_ind * channel_ind
Definition cbsp.h:150
osmo_cbsp_kill_failure::cell_list
struct osmo_cbsp_cell_list cell_list
Definition cbsp.h:149
osmo_cbsp_kill
Definition cbsp.h:127
osmo_cbsp_kill::msg_id
uint16_t msg_id
Definition cbsp.h:128
osmo_cbsp_kill::cell_list
struct osmo_cbsp_cell_list cell_list
Definition cbsp.h:130
osmo_cbsp_kill::channel_ind
enum cbsp_channel_ind * channel_ind
Definition cbsp.h:131
osmo_cbsp_kill::old_serial_nr
uint16_t old_serial_nr
Definition cbsp.h:129
osmo_cbsp_load_query_complete
Definition cbsp.h:160
osmo_cbsp_load_query_complete::channel_ind
enum cbsp_channel_ind channel_ind
Definition cbsp.h:162
osmo_cbsp_load_query_complete::loading_list
struct osmo_cbsp_loading_list loading_list
Definition cbsp.h:161
osmo_cbsp_load_query_failure
Definition cbsp.h:166
osmo_cbsp_load_query_failure::fail_list
struct llist_head fail_list
Definition cbsp.h:167
osmo_cbsp_load_query_failure::channel_ind
enum cbsp_channel_ind channel_ind
Definition cbsp.h:168
osmo_cbsp_load_query_failure::loading_list
struct osmo_cbsp_loading_list loading_list
Definition cbsp.h:169
osmo_cbsp_load_query
Definition cbsp.h:154
osmo_cbsp_load_query::cell_list
struct osmo_cbsp_cell_list cell_list
Definition cbsp.h:155
osmo_cbsp_load_query::channel_ind
enum cbsp_channel_ind channel_ind
Definition cbsp.h:156
osmo_cbsp_loading_ent
Definition cbsp.h:59
osmo_cbsp_loading_ent::cell_id
union gsm0808_cell_id_u cell_id
Definition cbsp.h:61
osmo_cbsp_loading_ent::load
uint8_t load[2]
Definition cbsp.h:62
osmo_cbsp_loading_ent::list
struct llist_head list
Definition cbsp.h:60
osmo_cbsp_loading_list
Definition cbsp.h:64
osmo_cbsp_loading_list::list
struct llist_head list
Definition cbsp.h:66
osmo_cbsp_loading_list::id_discr
enum CELL_IDENT id_discr
Definition cbsp.h:65
osmo_cbsp_msg_status_query_complete
Definition cbsp.h:181
osmo_cbsp_msg_status_query_complete::channel_ind
enum cbsp_channel_ind channel_ind
Definition cbsp.h:185
osmo_cbsp_msg_status_query_complete::num_compl_list
struct osmo_cbsp_num_compl_list num_compl_list
Definition cbsp.h:184
osmo_cbsp_msg_status_query_complete::msg_id
uint16_t msg_id
Definition cbsp.h:182
osmo_cbsp_msg_status_query_complete::old_serial_nr
uint16_t old_serial_nr
Definition cbsp.h:183
osmo_cbsp_msg_status_query_failure
Definition cbsp.h:189
osmo_cbsp_msg_status_query_failure::channel_ind
enum cbsp_channel_ind channel_ind
Definition cbsp.h:193
osmo_cbsp_msg_status_query_failure::old_serial_nr
uint16_t old_serial_nr
Definition cbsp.h:191
osmo_cbsp_msg_status_query_failure::msg_id
uint16_t msg_id
Definition cbsp.h:190
osmo_cbsp_msg_status_query_failure::num_compl_list
struct osmo_cbsp_num_compl_list num_compl_list
Definition cbsp.h:194
osmo_cbsp_msg_status_query_failure::fail_list
struct llist_head fail_list
Definition cbsp.h:192
osmo_cbsp_msg_status_query
Definition cbsp.h:173
osmo_cbsp_msg_status_query::channel_ind
enum cbsp_channel_ind channel_ind
Definition cbsp.h:177
osmo_cbsp_msg_status_query::cell_list
struct osmo_cbsp_cell_list cell_list
Definition cbsp.h:176
osmo_cbsp_msg_status_query::old_serial_nr
uint16_t old_serial_nr
Definition cbsp.h:175
osmo_cbsp_msg_status_query::msg_id
uint16_t msg_id
Definition cbsp.h:174
osmo_cbsp_num_compl_ent
Definition cbsp.h:47
osmo_cbsp_num_compl_ent::num_bcast_info
uint8_t num_bcast_info
Definition cbsp.h:51
osmo_cbsp_num_compl_ent::list
struct llist_head list
Definition cbsp.h:48
osmo_cbsp_num_compl_ent::num_compl
uint16_t num_compl
Definition cbsp.h:50
osmo_cbsp_num_compl_ent::cell_id
union gsm0808_cell_id_u cell_id
Definition cbsp.h:49
osmo_cbsp_num_compl_list
Definition cbsp.h:53
osmo_cbsp_num_compl_list::id_discr
enum CELL_IDENT id_discr
Definition cbsp.h:54
osmo_cbsp_num_compl_list::list
struct llist_head list
Definition cbsp.h:55
osmo_cbsp_reset_complete
Definition cbsp.h:203
osmo_cbsp_reset_complete::cell_list
struct osmo_cbsp_cell_list cell_list
Definition cbsp.h:204
osmo_cbsp_reset_failure
Definition cbsp.h:208
osmo_cbsp_reset_failure::fail_list
struct llist_head fail_list
Definition cbsp.h:209
osmo_cbsp_reset_failure::cell_list
struct osmo_cbsp_cell_list cell_list
Definition cbsp.h:210
osmo_cbsp_reset
Definition cbsp.h:198
osmo_cbsp_reset::cell_list
struct osmo_cbsp_cell_list cell_list
Definition cbsp.h:199
osmo_cbsp_restart
Definition cbsp.h:223
osmo_cbsp_restart::bcast_msg_type
uint8_t bcast_msg_type
Definition cbsp.h:225
osmo_cbsp_restart::recovery_ind
uint8_t recovery_ind
Definition cbsp.h:226
osmo_cbsp_restart::cell_list
struct osmo_cbsp_cell_list cell_list
Definition cbsp.h:224
osmo_cbsp_write_replace_complete
Definition cbsp.h:106
osmo_cbsp_write_replace_complete::msg_id
uint16_t msg_id
Definition cbsp.h:107
osmo_cbsp_write_replace_complete::num_compl_list
struct osmo_cbsp_num_compl_list num_compl_list
Definition cbsp.h:110
osmo_cbsp_write_replace_complete::channel_ind
enum cbsp_channel_ind * channel_ind
Definition cbsp.h:112
osmo_cbsp_write_replace_complete::new_serial_nr
uint16_t new_serial_nr
Definition cbsp.h:108
osmo_cbsp_write_replace_complete::old_serial_nr
uint16_t * old_serial_nr
Definition cbsp.h:109
osmo_cbsp_write_replace_complete::cell_list
struct osmo_cbsp_cell_list cell_list
Definition cbsp.h:111
osmo_cbsp_write_replace_failure
Definition cbsp.h:116
osmo_cbsp_write_replace_failure::cell_list
struct osmo_cbsp_cell_list cell_list
Definition cbsp.h:122
osmo_cbsp_write_replace_failure::num_compl_list
struct osmo_cbsp_num_compl_list num_compl_list
Definition cbsp.h:121
osmo_cbsp_write_replace_failure::channel_ind
enum cbsp_channel_ind * channel_ind
Definition cbsp.h:123
osmo_cbsp_write_replace_failure::fail_list
struct llist_head fail_list
Definition cbsp.h:120
osmo_cbsp_write_replace_failure::msg_id
uint16_t msg_id
Definition cbsp.h:117
osmo_cbsp_write_replace_failure::new_serial_nr
uint16_t new_serial_nr
Definition cbsp.h:118
osmo_cbsp_write_replace_failure::old_serial_nr
uint16_t * old_serial_nr
Definition cbsp.h:119
osmo_cbsp_write_replace
Definition cbsp.h:79
osmo_cbsp_write_replace::warning_type
uint16_t warning_type
Definition cbsp.h:98
osmo_cbsp_write_replace::category
enum cbsp_category category
Definition cbsp.h:89
osmo_cbsp_write_replace::cell_list
struct osmo_cbsp_cell_list cell_list
Definition cbsp.h:83
osmo_cbsp_write_replace::channel_ind
enum cbsp_channel_ind channel_ind
Definition cbsp.h:88
osmo_cbsp_write_replace::num_bcast_req
uint16_t num_bcast_req
Definition cbsp.h:91
osmo_cbsp_write_replace::indicator
uint8_t indicator
Definition cbsp.h:97
osmo_cbsp_write_replace::dcs
uint8_t dcs
Definition cbsp.h:93
osmo_cbsp_write_replace::rep_period
uint16_t rep_period
Definition cbsp.h:90
osmo_cbsp_write_replace::u
union osmo_cbsp_write_replace::@0 u
osmo_cbsp_write_replace::is_cbs
bool is_cbs
Definition cbsp.h:85
osmo_cbsp_write_replace::warning_period
uint32_t warning_period
Definition cbsp.h:100
osmo_cbsp_write_replace::new_serial_nr
uint16_t new_serial_nr
Definition cbsp.h:81
osmo_cbsp_write_replace::old_serial_nr
uint16_t * old_serial_nr
Definition cbsp.h:82
osmo_cbsp_write_replace::msg_id
uint16_t msg_id
Definition cbsp.h:80
value_string
gsm0808_cell_id_u
Instead of this, use either struct gsm0808_cell_id or gsm0808_cell_id_list2.
Definition gsm0808_utils.h:43