libosmogsm  0.9.6.256-2956
Osmocom GSM library
 All Data Structures Files Functions Variables Enumerations Enumerator Modules Pages
A-bis OML

Files

file  abis_nm.h
 
file  abis_nm.c
 

Macros

#define abis_nm_debugp_foh(ss, foh)
 write a human-readable OML header to the debug log More...
 

Functions

const char * abis_nm_nack_cause_name (uint8_t cause)
 Get human-readable string for NACK cause.
 
const char * abis_nm_nack_name (uint8_t nack)
 Get human-readable string for OML NACK message type.
 
const char * abis_nm_event_type_name (uint8_t cause)
 Get human-readable string for OML event type.
 
const char * abis_nm_severity_name (uint8_t cause)
 Get human-readable string for perceived OML severity.
 
const char * abis_nm_opstate_name (uint8_t os)
 Get human-readable string for OML Operational State.
 
const char * abis_nm_avail_name (uint8_t avail)
 Get human-readable string for OML Availability State.
 
const char * abis_nm_test_name (uint8_t test)
 Get human-readable string for OML test.
 
int abis_nm_chcomb4pchan (enum gsm_phys_chan_config pchan)
 Obtain OML Channel Combination for phnsical channel config.
 
enum gsm_phys_chan_config abis_nm_pchan4chcomb (uint8_t chcomb)
 Obtain physical channel config for OML Channel Combination.
 
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,...)
 Pack 3GPP TS 12.21 § 8.8.2 Failure Event Report into msgb.
 
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)
 Pack 3GPP TS 12.21 § 8.8.2 Failure Event Report into msgb.
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
static int abis_nm_get_sw_desc (struct abis_nm_sw_desc *sw, const uint8_t *buf, size_t length)
 Parse single 3GPP TS 52.021 §9.4.62 SW Description from buffer. More...
 
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. More...
 
void abis_nm_debugp_foh (int ss, struct abis_om_fom_hdr *foh)
 

Variables

const char abis_nm_ipa_magic [13]
 
const char abis_nm_osmo_magic [12]
 
enum abis_nm_msgtype abis_nm_reports [4]
 unidirectional messages from BTS to BSC
 
enum abis_nm_msgtype abis_nm_no_ack_nack [3]
 messages without ACK/NACK
 
enum abis_nm_msgtype abis_nm_sw_load_msgs [9]
 messages related to software load
 
enum abis_nm_msgtype abis_nm_nacks [33]
 All NACKs (negative acknowledgements.
 
const struct value_string abis_nm_msg_disc_names []
 Human-readable strings for A-bis OML Object Class.
 
const struct value_string abis_nm_obj_class_names []
 Human-readable strings for A-bis OML Object Class.
 
const struct value_string abis_nm_adm_state_names []
 Human-readable names for OML administrative state.
 
const struct tlv_definition abis_nm_att_tlvdef
 GSM A-bis OML TLV parser definition.
 
const struct tlv_definition abis_nm_osmo_att_tlvdef
 org.osmocom GSM A-bis OML TLV parser definition
 
const struct tlv_definition abis_nm_att_tlvdef_ipa
 GSM A-bis OML IPA TLV parser definition.
 
const char abis_nm_ipa_magic [13] = "com.ipaccess"
 
const char abis_nm_osmo_magic [12] = "org.osmocom"
 
enum abis_nm_msgtype abis_nm_reports [4]
 unidirectional messages from BTS to BSC More...
 
enum abis_nm_msgtype abis_nm_no_ack_nack [3]
 messages without ACK/NACK More...
 
enum abis_nm_msgtype abis_nm_sw_load_msgs [9]
 messages related to software load More...
 
enum abis_nm_msgtype abis_nm_nacks [33]
 All NACKs (negative acknowledgements.
 
static const struct value_string nack_names []
 
const struct value_string abis_mm_event_cause_names []
 
const struct value_string abis_nm_pcause_type_names []
 
static const struct value_string nack_cause_names []
 
static const struct value_string event_type_names []
 
static const struct value_string severity_names []
 
const uint8_t abis_nm_t200_ms []
 3GPP TS 12.21 9.4.53 T200 values (in msec) More...
 
const struct value_string abis_nm_msgtype_names []
 3GPP TS 52.021 §9.1 Message Types
 
const struct value_string abis_nm_att_names []
 3GPP TS 52.021 §9.4 Attributes and Parameters
 
enum abis_nm_attr abis_nm_att_settable []
 Attributes that the BSC can set, not only get, according to Section 9.4. More...
 
const struct tlv_definition abis_nm_att_tlvdef_ipa
 GSM A-bis OML IPA TLV parser definition.
 
const struct tlv_definition abis_nm_att_tlvdef
 GSM A-bis OML TLV parser definition.
 
const struct tlv_definition abis_nm_osmo_att_tlvdef
 org.osmocom GSM A-bis OML TLV parser definition More...
 
const struct value_string abis_nm_msg_disc_names []
 Human-readable strings for A-bis OML Object Class. More...
 
const struct value_string abis_nm_obj_class_names []
 Human-readable strings for A-bis OML Object Class. More...
 
static const struct value_string avail_names []
 
static const struct value_string test_names []
 
const struct value_string abis_nm_adm_state_names []
 Human-readable names for OML administrative state. More...
 
static enum abis_nm_chan_comb chcomb4pchan []
 

Detailed Description

Macro Definition Documentation

#define abis_nm_debugp_foh (   ss,
  foh 
)
Value:
DEBUGP(ss, "OC=%s(%02x) INST=(%02x,%02x,%02x) ", \
get_value_string(abis_nm_obj_class_names, (foh)->obj_class), \
(foh)->obj_class, (foh)->obj_inst.bts_nr, (foh)->obj_inst.trx_nr, \
(foh)->obj_inst.ts_nr)
const struct value_string abis_nm_obj_class_names[]
Human-readable strings for A-bis OML Object Class.
Definition: abis_nm.c:604

write a human-readable OML header to the debug log

Parameters
[in]ssLogging sub-system
[in]fohA-bis OML FOM header

Function Documentation

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.

Parameters
[in]bufbuffer
[in]buf_lenbuffer length
[out]swSW Description struct array
[in]sw_lenExpected number of SW Description entries
Returns
Number fo parsed SW-Description entries, negative error code otherwise

References abis_nm_get_sw_desc(), and abis_nm_get_sw_desc_len().

static int abis_nm_get_sw_desc ( struct abis_nm_sw_desc *  sw,
const uint8_t *  buf,
size_t  length 
)
inlinestatic

Parse single 3GPP TS 52.021 §9.4.62 SW Description from buffer.

Parameters
[out]swSW Description struct
[in]bufbuffer
[in]lenbuffer length
Returns
0 if parsing succeeded, negative error code otherwise

References abis_nm_get_sw_desc_len(), tlv_parse(), TLV_TYPE_TL16V, and TLV_TYPE_TV.

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.

Parameters
[in]bufbuffer, may contain several SW Descriptions
[in]lenbuffer length
Returns
length if parsing succeeded, 0 otherwise

Referenced by abis_nm_get_sw_conf(), and abis_nm_get_sw_desc().

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.

Parameters
[out]msgmessage buffer
[in]swSW Description struct
[in]put_sw_descrboolean, whether to put NM_ATT_SW_DESCR IE or not
Returns
length of buffer space necessary to store sw

References abis_nm_sw_desc_len(), msgb_tl16v_put(), and msgb_v_put().

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.

Parameters
[out]msgmessage buffer
[in]idFile ID part of SW Description
[in]idFile Version part of SW Description
[in]put_sw_descrboolean, whether to put NM_ATT_SW_DESCR IE or not
Returns
length of buffer space necessary to store sw

References abis_nm_put_sw_desc().

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.

Parameters
[in]swSW Description struct
[in]put_sw_descrboolean, whether to put NM_ATT_SW_DESCR IE or not
Returns
length of buffer space necessary to store sw

Referenced by abis_nm_put_sw_desc().

Variable Documentation

const struct value_string abis_mm_event_cause_names[]
Initial value:
= {
{ 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 }
}
const struct value_string abis_nm_adm_state_names[]
Initial value:
= {
{ 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.

enum abis_nm_attr abis_nm_att_settable[]
Initial value:
= {
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.

const struct value_string abis_nm_msg_disc_names[]
Initial value:
= {
{ 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.

enum abis_nm_msgtype abis_nm_no_ack_nack[3]
Initial value:
= {
NM_MT_MEAS_RES_REQ,
NM_MT_STOP_MEAS,
NM_MT_START_MEAS,
}

messages without ACK/NACK

const struct value_string abis_nm_obj_class_names[]
Initial value:
= {
{ 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.

const struct tlv_definition abis_nm_osmo_att_tlvdef
Initial value:
= {
.def = {
[NM_ATT_OSMO_REDUCEPOWER] = { TLV_TYPE_TV },
},
}
tag-value (8bit)
Definition: tlv.h:375

org.osmocom GSM A-bis OML TLV parser definition

const struct value_string abis_nm_pcause_type_names[]
Initial value:
= {
{ 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 }
}
enum abis_nm_msgtype abis_nm_reports[4]
Initial value:
= {
NM_MT_SW_ACTIVATED_REP,
NM_MT_TEST_REP,
NM_MT_STATECHG_EVENT_REP,
NM_MT_FAILURE_EVENT_REP,
}

unidirectional messages from BTS to BSC

enum abis_nm_msgtype abis_nm_sw_load_msgs[9]
Initial value:
= {
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[]
Initial value:
= {
[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 struct value_string avail_names[]
static
Initial value:
= {
{ 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
Initial value:
= {
[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,
}
const struct value_string event_type_names[]
static
Initial value:
= {
{ 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 }
}
const struct value_string severity_names[]
static
Initial value:
= {
{ 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 }
}
const struct value_string test_names[]
static
Initial value:
= {
{ 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 }
}