libosmogsm
0.11.0-dirty
Osmocom GSM library
|
GSM Network Management (OML) messages on the A-bis interface. More...
GSM Network Management (OML) messages on the A-bis interface.
3GPP TS 12.21 version 8.0.0 Release 1999 / ETSI TS 100 623 V8.0.0
#define abis_nm_debugp_foh | ( | ss, | |
foh | |||
) | DEBUGP(ss, "%s ", abis_nm_dump_foh(foh)) |
write a human-readable OML header to the debug log
[in] | ss | Logging sub-system |
[in] | foh | A-bis OML FOM header |
#define ABIS_NM_MSG_HEADROOM 128 |
Referenced by abis_nm_fail_evt_vrep().
#define ABIS_NM_MSG_SIZE 1024 |
Referenced by abis_nm_fail_evt_vrep().
#define ABIS_OM_FOM_HDR_SIZE (sizeof(struct abis_om_hdr) + sizeof(struct abis_om_fom_hdr)) |
Size of the OML FOM header in octets.
#define ABIS_OM_MDISC_FOM 0x80 |
Message Discriminator for Formatted Object Messages.
#define ABIS_OM_MDISC_MANUF 0x10 |
Message Discriminator for Manufacturer Specific Messages.
#define ABIS_OM_MDISC_MMI 0x40 |
Message Discriminator for Man Machine Interface.
#define ABIS_OM_MDISC_TRAU 0x20 |
Message Discriminator for TRAU management.
#define ABIS_OM_PLACEMENT_FIRST 0x40 |
First fragment of OML message is in this L2 frame.
#define ABIS_OM_PLACEMENT_LAST 0x10 |
Last fragment of OML message is in this L2 frame.
#define ABIS_OM_PLACEMENT_MIDDLE 0x20 |
Middle fragment of OML message is in this L2 frame.
#define ABIS_OM_PLACEMENT_ONLY 0x80 |
Entire OML message is in the L2 frame.
enum abis_bs11_line_cfg |
enum abis_bs11_objtype |
enum abis_bs11_phase |
Siemens BS11 boot phase.
enum abis_bs11_trx_power |
enum abis_mm_event_causes |
OML Probable Cause (Section 9.4.43) Manufacturer specific values.
enum abis_nm_adm_state |
enum abis_nm_attr |
OML Attributes / IEs (Section 9.4)
enum abis_nm_avail_state |
enum abis_nm_chan_comb |
enum abis_nm_event_type |
ip.access test number
enum abis_nm_msgtype |
OML Message Type (Section 9.1)
enum abis_nm_msgtype_bs11 |
Siemens specific OML Message Types.
ip.access specific OML Message Types
enum abis_nm_nack_cause |
NACK causes (Section 9.4.36)
enum abis_nm_obj_class |
OML Object Class (Section 9.2)
enum abis_nm_op_state |
enum abis_nm_pcause_type |
enum abis_nm_severity |
enum abis_nm_t200_idx |
enum ipac_bcch_info_type |
enum ipac_eie |
ip.access IEI
struct abis_om_hdr __attribute__ | ( | (packed) | ) |
static const char* abis_nm_admin_name | ( | uint8_t | admin | ) | [inline, static] |
Get human-readable string for OML administrative state.
References abis_nm_adm_state_names, and get_value_string().
const char * abis_nm_avail_name | ( | uint8_t | avail | ) |
Get human-readable string for OML Availability State.
References get_value_string().
int abis_nm_chcomb4pchan | ( | enum gsm_phys_chan_config | pchan | ) |
Obtain OML Channel Combination for phnsical channel config.
References ARRAY_SIZE, and chcomb4pchan.
void abis_nm_debugp_foh | ( | int | ss, |
struct abis_om_fom_hdr * | foh | ||
) |
References abis_nm_dump_foh(), and DEBUGP.
const char * abis_nm_dump_foh | ( | const struct abis_om_fom_hdr * | foh | ) |
References abis_om_obj_inst::bts_nr, get_value_string(), abis_om_fom_hdr::obj_class, abis_om_fom_hdr::obj_inst, abis_om_obj_inst::trx_nr, and abis_om_obj_inst::ts_nr.
Referenced by abis_nm_debugp_foh().
const char * abis_nm_event_type_name | ( | uint8_t | cause | ) |
Get human-readable string for OML event type.
References get_value_string().
struct msgb * abis_nm_fail_evt_rep | ( | enum abis_nm_event_type | t, |
enum abis_nm_severity | s, | ||
enum abis_nm_pcause_type | ct, | ||
uint16_t | cause_value, | ||
const char * | fmt, | ||
... | |||
) | [read] |
Pack 3GPP TS 12.21 § 8.8.2 Failure Event Report into msgb.
References abis_nm_fail_evt_vrep().
struct msgb * abis_nm_fail_evt_vrep | ( | enum abis_nm_event_type | t, |
enum abis_nm_severity | s, | ||
enum abis_nm_pcause_type | ct, | ||
uint16_t | cause_value, | ||
const char * | fmt, | ||
va_list | ap | ||
) | [read] |
Pack 3GPP TS 12.21 § 8.8.2 Failure Event Report into msgb.
References ABIS_NM_MSG_HEADROOM, ABIS_NM_MSG_SIZE, cause, len, msgb_alloc_headroom(), msgb_free(), msgb_tl16v_put(), msgb_tv_fixed_put(), msgb_tv_put(), NM_ATT_ADD_TEXT, NM_ATT_EVENT_TYPE, NM_ATT_PROB_CAUSE, and NM_ATT_SEVERITY.
Referenced by abis_nm_fail_evt_rep().
int abis_nm_get_sw_conf | ( | const uint8_t * | buf, |
size_t | buf_len, | ||
struct abis_nm_sw_desc * | sw, | ||
uint16_t | sw_len | ||
) |
Parse 3GPP TS 52.021 §9.4.61 SW Configuration from buffer.
[in] | buf | buffer |
[in] | buf_len | buffer length |
[out] | sw | SW Description struct array |
[in] | sw_len | Expected number of SW Description entries |
References abis_nm_get_sw_desc(), abis_nm_get_sw_desc_len(), and len.
static int abis_nm_get_sw_desc | ( | struct abis_nm_sw_desc * | sw, |
const uint8_t * | buf, | ||
size_t | length | ||
) | [inline, static] |
Parse single 3GPP TS 52.021 §9.4.62 SW Description from buffer.
[out] | sw | SW Description struct |
[in] | buf | buffer |
[in] | len | buffer length |
References abis_nm_get_sw_desc_len(), tlv_definition::def, abis_nm_sw_desc::file_id, abis_nm_sw_desc::file_id_len, abis_nm_sw_desc::file_version, abis_nm_sw_desc::file_version_len, len, NM_ATT_FILE_ID, NM_ATT_FILE_VERSION, NM_ATT_SW_DESCR, tlv_parse(), TLV_TYPE_TL16V, TLV_TYPE_TV, TLVP_LEN, TLVP_PRESENT, and TLVP_VAL.
Referenced by abis_nm_get_sw_conf().
uint32_t abis_nm_get_sw_desc_len | ( | const uint8_t * | buf, |
size_t | len | ||
) |
Get length of first 3GPP TS 52.021 §9.4.62 SW Description from buffer.
[in] | buf | buffer, may contain several SW Descriptions |
[in] | len | buffer length |
References NM_ATT_FILE_ID, NM_ATT_FILE_VERSION, and NM_ATT_SW_DESCR.
Referenced by abis_nm_get_sw_conf(), and abis_nm_get_sw_desc().
const char * abis_nm_nack_cause_name | ( | uint8_t | cause | ) |
Get human-readable string for NACK cause.
References get_value_string().
const char * abis_nm_nack_name | ( | uint8_t | nack | ) |
Get human-readable string for OML NACK message type.
References get_value_string().
const char * abis_nm_opstate_name | ( | uint8_t | os | ) |
Get human-readable string for OML Operational State.
References NM_OPSTATE_DISABLED, NM_OPSTATE_ENABLED, and NM_OPSTATE_NULL.
enum gsm_phys_chan_config abis_nm_pchan4chcomb | ( | uint8_t | chcomb | ) |
Obtain physical channel config for OML Channel Combination.
References ARRAY_SIZE, chcomb4pchan, and GSM_PCHAN_NONE.
uint16_t abis_nm_put_sw_desc | ( | struct msgb * | msg, |
const struct abis_nm_sw_desc * | sw, | ||
bool | put_sw_desc | ||
) |
Put given 3GPP TS 52.021 §9.4.62 SW Description into msgb.
[out] | msg | message buffer |
[in] | sw | SW Description struct |
[in] | put_sw_descr | boolean, whether to put NM_ATT_SW_DESCR IE or not |
References abis_nm_sw_desc_len(), abis_nm_sw_desc::file_id, abis_nm_sw_desc::file_id_len, abis_nm_sw_desc::file_version, abis_nm_sw_desc::file_version_len, msgb_tl16v_put(), msgb_v_put(), NM_ATT_FILE_ID, NM_ATT_FILE_VERSION, and NM_ATT_SW_DESCR.
Referenced by abis_nm_put_sw_file().
uint16_t abis_nm_put_sw_file | ( | struct msgb * | msg, |
const char * | id, | ||
const char * | ver, | ||
bool | put_sw_desc | ||
) |
Put given file ID/Version pair as 3GPP TS 52.021 §9.4.62 SW Description into msgb.
[out] | msg | message buffer |
[in] | id | File ID part of SW Description |
[in] | id | File Version part of SW Description |
[in] | put_sw_descr | boolean, whether to put NM_ATT_SW_DESCR IE or not |
References abis_nm_put_sw_desc(), abis_nm_sw_desc::file_id, abis_nm_sw_desc::file_id_len, abis_nm_sw_desc::file_version, and abis_nm_sw_desc::file_version_len.
const char * abis_nm_severity_name | ( | uint8_t | cause | ) |
Get human-readable string for perceived OML severity.
References get_value_string().
uint16_t abis_nm_sw_desc_len | ( | const struct abis_nm_sw_desc * | sw, |
bool | put_sw_desc | ||
) |
Compute length of given 3GPP TS 52.021 §9.4.62 SW Description.
[in] | sw | SW Description struct |
[in] | put_sw_descr | boolean, whether to put NM_ATT_SW_DESCR IE or not |
References abis_nm_sw_desc::file_id_len, and abis_nm_sw_desc::file_version_len.
Referenced by abis_nm_put_sw_desc().
const char * abis_nm_test_name | ( | uint8_t | test | ) |
Get human-readable string for OML test.
References get_value_string().
struct value_string abis_mm_event_cause_names[] |
{ { OSMO_EVT_CRIT_SW_FATAL, "Fatal software error" }, { OSMO_EVT_CRIT_PROC_STOP, "Process stopped" }, { OSMO_EVT_CRIT_RTP_TOUT, "RTP error" }, { OSMO_EVT_CRIT_BOOT_FAIL, "Boot failure" }, { OSMO_EVT_MAJ_UKWN_MSG, "Unknown message" }, { OSMO_EVT_MAJ_RSL_FAIL, "RSL failure" }, { OSMO_EVT_MAJ_UNSUP_ATTR, "Unsupported attribute" }, { OSMO_EVT_MAJ_NET_CONGEST, "Network congestion" }, { OSMO_EVT_MIN_PAG_TAB_FULL, "Paging table full" }, { OSMO_EVT_WARN_SW_WARN, "Software warning" }, { OSMO_EVT_EXT_ALARM, "External alarm" }, { OSMO_EVT_PCU_VERS, "PCU version report" }, { 0, NULL } }
struct value_string abis_mm_event_cause_names[] |
struct value_string abis_nm_adm_state_names[] |
Human-readable names for OML administrative state.
Referenced by abis_nm_admin_name().
struct value_string abis_nm_adm_state_names[] |
{ { NM_STATE_LOCKED, "Locked" }, { NM_STATE_UNLOCKED, "Unlocked" }, { NM_STATE_SHUTDOWN, "Shutdown" }, { NM_STATE_NULL, "NULL" }, { 0, NULL } }
Human-readable names for OML administrative state.
Referenced by abis_nm_admin_name().
struct value_string abis_nm_att_names[] |
3GPP TS 52.021 §9.4 Attributes and Parameters
struct value_string abis_nm_att_names[] |
3GPP TS 52.021 §9.4 Attributes and Parameters
enum abis_nm_attr abis_nm_att_settable[] |
{ NM_ATT_ADD_INFO, NM_ATT_ADD_TEXT, NM_ATT_DEST, NM_ATT_EVENT_TYPE, NM_ATT_FILE_DATA, NM_ATT_GET_ARI, NM_ATT_HW_CONF_CHG, NM_ATT_LIST_REQ_ATTR, NM_ATT_MDROP_LINK, NM_ATT_MDROP_NEXT, NM_ATT_NACK_CAUSES, NM_ATT_OUTST_ALARM, NM_ATT_PHYS_CONF, NM_ATT_PROB_CAUSE, NM_ATT_RAD_SUBC, NM_ATT_SOURCE, NM_ATT_SPEC_PROB, NM_ATT_START_TIME, NM_ATT_TEST_DUR, NM_ATT_TEST_NO, NM_ATT_TEST_REPORT, NM_ATT_WINDOW_SIZE, NM_ATT_SEVERITY, NM_ATT_MEAS_RES, NM_ATT_MEAS_TYPE, }
Attributes that the BSC can set, not only get, according to Section 9.4.
struct tlv_definition abis_nm_att_tlvdef |
GSM A-bis OML TLV parser definition.
struct tlv_definition abis_nm_att_tlvdef |
GSM A-bis OML TLV parser definition.
GSM A-bis OML IPA TLV parser definition.
GSM A-bis OML IPA TLV parser definition.
const char abis_nm_ipa_magic[13] |
const char abis_nm_ipa_magic[13] = "com.ipaccess" |
struct value_string abis_nm_msg_disc_names[] |
Human-readable strings for A-bis OML Object Class.
struct value_string abis_nm_msg_disc_names[] |
{ { ABIS_OM_MDISC_FOM, "FOM" }, { ABIS_OM_MDISC_MMI, "MMI" }, { ABIS_OM_MDISC_TRAU, "TRAU" }, { ABIS_OM_MDISC_MANUF, "MANUF" }, { 0, NULL } }
Human-readable strings for A-bis OML Object Class.
struct value_string abis_nm_msgtype_names[] |
3GPP TS 52.021 §9.1 Message Types
struct value_string abis_nm_msgtype_names[] |
3GPP TS 52.021 §9.1 Message Types
enum abis_nm_msgtype abis_nm_nacks[33] |
All NACKs (negative acknowledgements.
enum abis_nm_msgtype abis_nm_nacks[33] |
All NACKs (negative acknowledgements.
enum abis_nm_msgtype abis_nm_no_ack_nack[3] |
messages without ACK/NACK
enum abis_nm_msgtype abis_nm_no_ack_nack[3] |
messages without ACK/NACK
struct value_string abis_nm_obj_class_names[] |
Human-readable strings for A-bis OML Object Class.
struct value_string abis_nm_obj_class_names[] |
{ { NM_OC_SITE_MANAGER, "SITE-MANAGER" }, { NM_OC_BTS, "BTS" }, { NM_OC_RADIO_CARRIER, "RADIO-CARRIER" }, { NM_OC_BASEB_TRANSC, "BASEBAND-TRANSCEIVER" }, { NM_OC_CHANNEL, "CHANNEL" }, { NM_OC_BS11_ADJC, "ADJC" }, { NM_OC_BS11_HANDOVER, "HANDOVER" }, { NM_OC_BS11_PWR_CTRL, "POWER-CONTROL" }, { NM_OC_BS11_BTSE, "BTSE" }, { NM_OC_BS11_RACK, "RACK" }, { NM_OC_BS11_TEST, "TEST" }, { NM_OC_BS11_ENVABTSE, "ENVABTSE" }, { NM_OC_BS11_BPORT, "BPORT" }, { NM_OC_GPRS_NSE, "GPRS-NSE" }, { NM_OC_GPRS_CELL, "GPRS-CELL" }, { NM_OC_GPRS_NSVC, "GPRS-NSVC" }, { NM_OC_BS11, "SIEMENSHW" }, { 0, NULL } }
Human-readable strings for A-bis OML Object Class.
org.osmocom GSM A-bis OML TLV parser definition
{ .def = { [NM_ATT_OSMO_REDUCEPOWER] = { TLV_TYPE_TV }, }, }
org.osmocom GSM A-bis OML TLV parser definition
const char abis_nm_osmo_magic[12] |
const char abis_nm_osmo_magic[12] = "org.osmocom" |
struct value_string abis_nm_pcause_type_names[] |
{ { NM_PCAUSE_T_X721, "ISO/CCITT values (X.721)"}, { NM_PCAUSE_T_GSM, "GSM specific values"}, { NM_PCAUSE_T_MANUF, "Manufacturer specific values"}, { 0, NULL } }
struct value_string abis_nm_pcause_type_names[] |
enum abis_nm_msgtype abis_nm_reports[4] |
unidirectional messages from BTS to BSC
enum abis_nm_msgtype abis_nm_reports[4] |
unidirectional messages from BTS to BSC
enum abis_nm_msgtype abis_nm_sw_load_msgs[9] |
messages related to software load
enum abis_nm_msgtype abis_nm_sw_load_msgs[9] |
{ NM_MT_LOAD_INIT_ACK, NM_MT_LOAD_INIT_NACK, NM_MT_LOAD_SEG_ACK, NM_MT_LOAD_ABORT, NM_MT_LOAD_END_ACK, NM_MT_LOAD_END_NACK, NM_MT_ACTIVATE_SW_ACK, NM_MT_ACTIVATE_SW_NACK, NM_MT_SW_ACTIVATED_REP, }
messages related to software load
const uint8_t abis_nm_t200_ms[] |
{ [T200_SDCCH] = 5, [T200_FACCH_F] = 5, [T200_FACCH_H] = 5, [T200_SACCH_TCH_SAPI0] = 10, [T200_SACCH_SDCCH] = 10, [T200_SDCCH_SAPI3] = 5, [T200_SACCH_TCH_SAPI3] = 10 }
3GPP TS 12.21 9.4.53 T200 values (in msec)
const uint8_t abis_nm_t200_ms[] |
3GPP TS 12.21 9.4.53 T200 values (in msec)
struct value_string avail_names[] [static] |
{ { 0, "In test" }, { 1, "Failed" }, { 2, "Power off" }, { 3, "Off line" }, { 5, "Dependency" }, { 6, "Degraded" }, { 7, "Not installed" }, { 0xff, "OK" }, { 0, NULL } }
enum abis_nm_chan_comb chcomb4pchan[] [static] |
{ [GSM_PCHAN_NONE] = 0xff, [GSM_PCHAN_CCCH] = NM_CHANC_mainBCCH, [GSM_PCHAN_CCCH_SDCCH4] = NM_CHANC_BCCHComb, [GSM_PCHAN_TCH_F] = NM_CHANC_TCHFull, [GSM_PCHAN_TCH_H] = NM_CHANC_TCHHalf, [GSM_PCHAN_SDCCH8_SACCH8C] = NM_CHANC_SDCCH, [GSM_PCHAN_PDCH] = NM_CHANC_IPAC_PDCH, [GSM_PCHAN_TCH_F_PDCH] = NM_CHANC_IPAC_TCHFull_PDCH, [GSM_PCHAN_UNKNOWN] = 0xff, [GSM_PCHAN_CCCH_SDCCH4_CBCH] = NM_CHANC_BCCH_CBCH, [GSM_PCHAN_SDCCH8_SACCH8C_CBCH] = NM_CHANC_SDCCH_CBCH, [GSM_PCHAN_TCH_F_TCH_H_PDCH] = NM_CHANC_OSMO_TCHFull_TCHHalf_PDCH, }
Referenced by abis_nm_chcomb4pchan(), and abis_nm_pchan4chcomb().
struct value_string event_type_names[] [static] |
{ { NM_EVT_COMM_FAIL, "communication failure" }, { NM_EVT_QOS_FAIL, "quality of service failure" }, { NM_EVT_PROC_FAIL, "processing failure" }, { NM_EVT_EQUIP_FAIL, "equipment failure" }, { NM_EVT_ENV_FAIL, "environment failure" }, { 0, NULL } }
struct value_string nack_cause_names[] [static] |
struct value_string nack_names[] [static] |
struct value_string severity_names[] [static] |
{ { NM_SEVER_CEASED, "failure ceased" }, { NM_SEVER_CRITICAL, "critical failure" }, { NM_SEVER_MAJOR, "major failure" }, { NM_SEVER_MINOR, "minor failure" }, { NM_SEVER_WARNING, "warning level failure" }, { NM_SEVER_INDETERMINATE, "indeterminate failure" }, { 0, NULL } }
struct value_string test_names[] [static] |
{ { NM_IPACC_TESTNO_CHAN_USAGE, "Channel Usage" }, { NM_IPACC_TESTNO_BCCH_CHAN_USAGE, "BCCH Channel Usage" }, { NM_IPACC_TESTNO_FREQ_SYNC, "Frequency Synchronization" }, { NM_IPACC_TESTNO_BCCH_INFO, "BCCH Info" }, { NM_IPACC_TESTNO_TX_BEACON, "Transmit Beacon" }, { NM_IPACC_TESTNO_SYSINFO_MONITOR, "System Info Monitor" }, { NM_IPACC_TESTNO_BCCCH_MONITOR, "BCCH Monitor" }, { 0, NULL } }