blob: 5520f9935e29976cfccf8180b1dcb225fd560db0 [file] [log] [blame]
Sylvain Munaut12ba7782014-06-16 10:13:40 +02001#pragma once
Harald Weltef7a1bcc2011-05-22 22:45:16 +02002
Harald Welte4e777c32011-08-17 19:15:24 +02003/*! \defgroup oml A-bis OML
4 * @{
5 */
6
Harald Weltef7a1bcc2011-05-22 22:45:16 +02007#include <osmocom/gsm/tlv.h>
Harald Weltefc906462011-06-05 11:22:59 +02008#include <osmocom/gsm/gsm_utils.h>
Harald Weltef7a1bcc2011-05-22 22:45:16 +02009#include <osmocom/gsm/protocol/gsm_12_21.h>
10
Harald Welte4e777c32011-08-17 19:15:24 +020011/*! \file abis_nm.h */
12
Harald Welte604d5522014-08-17 18:42:58 +020013extern const char abis_nm_ipa_magic[13];
14extern const char abis_nm_osmo_magic[12];
15
Holger Hans Peter Freyther271c43b2011-05-31 00:42:38 +020016enum abis_nm_msgtype;
17enum gsm_phys_chan_config;
18
Tobias Engel6ad25f22012-10-24 17:52:53 +020019extern const enum abis_nm_msgtype abis_nm_reports[4];
20extern const enum abis_nm_msgtype abis_nm_no_ack_nack[3];
21extern const enum abis_nm_msgtype abis_nm_sw_load_msgs[9];
22extern const enum abis_nm_msgtype abis_nm_nacks[33];
Harald Weltef7a1bcc2011-05-22 22:45:16 +020023
Holger Hans Peter Freyther30366122011-05-23 21:41:34 +020024extern const struct value_string abis_nm_obj_class_names[];
25extern const struct value_string abis_nm_adm_state_names[];
Harald Welteea4b12a2011-05-23 20:41:31 +020026
Harald Weltef7a1bcc2011-05-22 22:45:16 +020027const char *abis_nm_nack_cause_name(uint8_t cause);
28const char *abis_nm_nack_name(uint8_t nack);
29const char *abis_nm_event_type_name(uint8_t cause);
30const char *abis_nm_severity_name(uint8_t cause);
Tobias Engel6ad25f22012-10-24 17:52:53 +020031extern const struct tlv_definition abis_nm_att_tlvdef;
Harald Weltef7a1bcc2011-05-22 22:45:16 +020032const char *abis_nm_opstate_name(uint8_t os);
33const char *abis_nm_avail_name(uint8_t avail);
34const char *abis_nm_test_name(uint8_t test);
Álvaro Neira Ayuso550b06c2014-05-19 19:22:55 +020035extern const struct tlv_definition abis_nm_osmo_att_tlvdef;
Harald Welte868a5c42013-02-10 09:29:27 +010036
37/*! \brief write a human-readable OML header to the debug log
38 * \param[in] ss Logging sub-system
39 * \param[in] foh A-bis OML FOM header
40 */
41#define abis_nm_debugp_foh(ss, foh) \
42 DEBUGP(ss, "OC=%s(%02x) INST=(%02x,%02x,%02x) ", \
Harald Welte647e39f2013-02-10 17:02:18 +010043 get_value_string(abis_nm_obj_class_names, (foh)->obj_class), \
44 (foh)->obj_class, (foh)->obj_inst.bts_nr, (foh)->obj_inst.trx_nr, \
45 (foh)->obj_inst.ts_nr)
Harald Welte868a5c42013-02-10 09:29:27 +010046
Harald Weltef7a1bcc2011-05-22 22:45:16 +020047
Harald Welte11c71932011-05-24 17:15:12 +020048int abis_nm_chcomb4pchan(enum gsm_phys_chan_config pchan);
Holger Hans Peter Freytherd4d87c52014-01-02 14:10:25 +010049enum gsm_phys_chan_config abis_nm_pchan4chcomb(uint8_t chcomb);
Harald Welte4e777c32011-08-17 19:15:24 +020050
Sylvain Munautdca7d2c2012-04-18 21:53:23 +020051/*! @} */