libosmogsm  0.9.3
Osmocom GSM library
include/osmocom/gsm/protocol/gsm_12_21.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 /* GSM Network Management messages on the A-bis interface 
00004  * 3GPP TS 12.21 version 8.0.0 Release 1999 / ETSI TS 100 623 V8.0.0 */
00005 
00006 /* (C) 2008-2009 by Harald Welte <laforge@gnumonks.org>
00007  * All Rights Reserved
00008  *
00009  * This program is free software; you can redistribute it and/or modify
00010  * it under the terms of the GNU General Public License as published by
00011  * the Free Software Foundation; either version 2 of the License, or
00012  * (at your option) any later version.
00013  *
00014  * This program is distributed in the hope that it will be useful,
00015  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017  * GNU General Public License for more details.
00018  *
00019  * You should have received a copy of the GNU General Public License along
00020  * with this program; if not, write to the Free Software Foundation, Inc.,
00021  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
00022  *
00023  */
00024 
00031 #include <stdint.h>
00032 #include <osmocom/gsm/tlv.h>
00033 
00035 struct abis_om_hdr {
00037         uint8_t mdisc;
00039         uint8_t placement;
00041         uint8_t sequence;
00043         uint8_t length;
00045         uint8_t data[0];
00046 } __attribute__ ((packed));
00047 
00049 #define ABIS_OM_MDISC_FOM               0x80
00050 
00051 #define ABIS_OM_MDISC_MMI               0x40
00052 
00053 #define ABIS_OM_MDISC_TRAU              0x20
00054 
00055 #define ABIS_OM_MDISC_MANUF             0x10
00056 
00058 #define ABIS_OM_PLACEMENT_ONLY          0x80
00059 
00060 #define ABIS_OM_PLACEMENT_FIRST         0x40
00061 
00062 #define ABIS_OM_PLACEMENT_MIDDLE        0x20
00063 
00064 #define ABIS_OM_PLACEMENT_LAST          0x10
00065 
00067 struct abis_om_obj_inst {
00068         uint8_t bts_nr; 
00069         uint8_t trx_nr; 
00070         uint8_t ts_nr;  
00071 } __attribute__ ((packed));
00072 
00074 struct abis_om_fom_hdr {
00075         uint8_t msg_type;       
00076         uint8_t obj_class;      
00077         struct abis_om_obj_inst obj_inst; 
00078         uint8_t data[0];        
00079 } __attribute__ ((packed));
00080 
00082 #define ABIS_OM_FOM_HDR_SIZE    (sizeof(struct abis_om_hdr) + sizeof(struct abis_om_fom_hdr))
00083 
00085 enum abis_nm_msgtype {
00086         /* SW Download Management Messages */
00087         NM_MT_LOAD_INIT                 = 0x01,
00088         NM_MT_LOAD_INIT_ACK,
00089         NM_MT_LOAD_INIT_NACK,
00090         NM_MT_LOAD_SEG,
00091         NM_MT_LOAD_SEG_ACK,
00092         NM_MT_LOAD_ABORT,
00093         NM_MT_LOAD_END,
00094         NM_MT_LOAD_END_ACK,
00095         NM_MT_LOAD_END_NACK,
00096         NM_MT_SW_ACT_REQ,               /* BTS->BSC */
00097         NM_MT_SW_ACT_REQ_ACK,
00098         NM_MT_SW_ACT_REQ_NACK,
00099         NM_MT_ACTIVATE_SW,              /* BSC->BTS */
00100         NM_MT_ACTIVATE_SW_ACK,
00101         NM_MT_ACTIVATE_SW_NACK,
00102         NM_MT_SW_ACTIVATED_REP,         /* 0x10 */
00103         /* A-bis Interface Management Messages */
00104         NM_MT_ESTABLISH_TEI             = 0x21,
00105         NM_MT_ESTABLISH_TEI_ACK,
00106         NM_MT_ESTABLISH_TEI_NACK,
00107         NM_MT_CONN_TERR_SIGN,
00108         NM_MT_CONN_TERR_SIGN_ACK,
00109         NM_MT_CONN_TERR_SIGN_NACK,
00110         NM_MT_DISC_TERR_SIGN,
00111         NM_MT_DISC_TERR_SIGN_ACK,
00112         NM_MT_DISC_TERR_SIGN_NACK,
00113         NM_MT_CONN_TERR_TRAF,
00114         NM_MT_CONN_TERR_TRAF_ACK,
00115         NM_MT_CONN_TERR_TRAF_NACK,
00116         NM_MT_DISC_TERR_TRAF,
00117         NM_MT_DISC_TERR_TRAF_ACK,
00118         NM_MT_DISC_TERR_TRAF_NACK,
00119         /* Transmission Management Messages */
00120         NM_MT_CONN_MDROP_LINK           = 0x31,
00121         NM_MT_CONN_MDROP_LINK_ACK,
00122         NM_MT_CONN_MDROP_LINK_NACK,
00123         NM_MT_DISC_MDROP_LINK,
00124         NM_MT_DISC_MDROP_LINK_ACK,
00125         NM_MT_DISC_MDROP_LINK_NACK,
00126         /* Air Interface Management Messages */
00127         NM_MT_SET_BTS_ATTR              = 0x41,
00128         NM_MT_SET_BTS_ATTR_ACK,
00129         NM_MT_SET_BTS_ATTR_NACK,
00130         NM_MT_SET_RADIO_ATTR,
00131         NM_MT_SET_RADIO_ATTR_ACK,
00132         NM_MT_SET_RADIO_ATTR_NACK,
00133         NM_MT_SET_CHAN_ATTR,
00134         NM_MT_SET_CHAN_ATTR_ACK,
00135         NM_MT_SET_CHAN_ATTR_NACK,
00136         /* Test Management Messages */
00137         NM_MT_PERF_TEST                 = 0x51,
00138         NM_MT_PERF_TEST_ACK,
00139         NM_MT_PERF_TEST_NACK,
00140         NM_MT_TEST_REP,
00141         NM_MT_SEND_TEST_REP,
00142         NM_MT_SEND_TEST_REP_ACK,
00143         NM_MT_SEND_TEST_REP_NACK,
00144         NM_MT_STOP_TEST,
00145         NM_MT_STOP_TEST_ACK,
00146         NM_MT_STOP_TEST_NACK,
00147         /* State Management and Event Report Messages */
00148         NM_MT_STATECHG_EVENT_REP        = 0x61,
00149         NM_MT_FAILURE_EVENT_REP,
00150         NM_MT_STOP_EVENT_REP,
00151         NM_MT_STOP_EVENT_REP_ACK,
00152         NM_MT_STOP_EVENT_REP_NACK,
00153         NM_MT_REST_EVENT_REP,
00154         NM_MT_REST_EVENT_REP_ACK,
00155         NM_MT_REST_EVENT_REP_NACK,
00156         NM_MT_CHG_ADM_STATE,
00157         NM_MT_CHG_ADM_STATE_ACK,
00158         NM_MT_CHG_ADM_STATE_NACK,
00159         NM_MT_CHG_ADM_STATE_REQ,
00160         NM_MT_CHG_ADM_STATE_REQ_ACK,
00161         NM_MT_CHG_ADM_STATE_REQ_NACK,
00162         NM_MT_REP_OUTST_ALARMS          = 0x93,
00163         NM_MT_REP_OUTST_ALARMS_ACK,
00164         NM_MT_REP_OUTST_ALARMS_NACK,
00165         /* Equipment Management Messages */
00166         NM_MT_CHANGEOVER                = 0x71,
00167         NM_MT_CHANGEOVER_ACK,
00168         NM_MT_CHANGEOVER_NACK,
00169         NM_MT_OPSTART,
00170         NM_MT_OPSTART_ACK,
00171         NM_MT_OPSTART_NACK,
00172         NM_MT_REINIT,
00173         NM_MT_REINIT_ACK,
00174         NM_MT_REINIT_NACK,
00175         NM_MT_SET_SITE_OUT,             /* BS11: get alarm ?!? */
00176         NM_MT_SET_SITE_OUT_ACK,
00177         NM_MT_SET_SITE_OUT_NACK,
00178         NM_MT_CHG_HW_CONF               = 0x90,
00179         NM_MT_CHG_HW_CONF_ACK,
00180         NM_MT_CHG_HW_CONF_NACK,
00181         /* Measurement Management Messages */
00182         NM_MT_MEAS_RES_REQ              = 0x8a,
00183         NM_MT_MEAS_RES_RESP,
00184         NM_MT_STOP_MEAS,
00185         NM_MT_START_MEAS,
00186         /* Other Messages */
00187         NM_MT_GET_ATTR                  = 0x81,
00188         NM_MT_GET_ATTR_RESP,
00189         NM_MT_GET_ATTR_NACK,
00190         NM_MT_SET_ALARM_THRES,
00191         NM_MT_SET_ALARM_THRES_ACK,
00192         NM_MT_SET_ALARM_THRES_NACK,
00193 };
00194 
00196 enum abis_nm_msgtype_bs11 {
00197         NM_MT_BS11_RESET_RESOURCE       = 0x74,
00198 
00199         NM_MT_BS11_BEGIN_DB_TX          = 0xa3,
00200         NM_MT_BS11_BEGIN_DB_TX_ACK,
00201         NM_MT_BS11_BEGIN_DB_TX_NACK,
00202         NM_MT_BS11_END_DB_TX            = 0xa6,
00203         NM_MT_BS11_END_DB_TX_ACK,
00204         NM_MT_BS11_END_DB_TX_NACK,
00205         NM_MT_BS11_CREATE_OBJ           = 0xa9,
00206         NM_MT_BS11_CREATE_OBJ_ACK,
00207         NM_MT_BS11_CREATE_OBJ_NACK,
00208         NM_MT_BS11_DELETE_OBJ           = 0xac,
00209         NM_MT_BS11_DELETE_OBJ_ACK,
00210         NM_MT_BS11_DELETE_OBJ_NACK,
00211 
00212         NM_MT_BS11_SET_ATTR             = 0xd0,
00213         NM_MT_BS11_SET_ATTR_ACK,
00214         NM_MT_BS11_SET_ATTR_NACK,
00215         NM_MT_BS11_LMT_SESSION          = 0xdc,
00216 
00217         NM_MT_BS11_GET_STATE            = 0xe3,
00218         NM_MT_BS11_GET_STATE_ACK,
00219         NM_MT_BS11_LMT_LOGON            = 0xe5,
00220         NM_MT_BS11_LMT_LOGON_ACK,
00221         NM_MT_BS11_RESTART              = 0xe7,
00222         NM_MT_BS11_RESTART_ACK,
00223         NM_MT_BS11_DISCONNECT           = 0xe9,
00224         NM_MT_BS11_DISCONNECT_ACK,
00225         NM_MT_BS11_LMT_LOGOFF           = 0xec,
00226         NM_MT_BS11_LMT_LOGOFF_ACK,
00227         NM_MT_BS11_RECONNECT            = 0xf1,
00228         NM_MT_BS11_RECONNECT_ACK,
00229 };
00230 
00232 enum abis_nm_msgtype_ipacc {
00233         NM_MT_IPACC_RESTART             = 0x87,
00234         NM_MT_IPACC_RESTART_ACK,
00235         NM_MT_IPACC_RESTART_NACK,
00236         NM_MT_IPACC_RSL_CONNECT         = 0xe0,
00237         NM_MT_IPACC_RSL_CONNECT_ACK,
00238         NM_MT_IPACC_RSL_CONNECT_NACK,
00239         NM_MT_IPACC_RSL_DISCONNECT      = 0xe3,
00240         NM_MT_IPACC_RSL_DISCONNECT_ACK,
00241         NM_MT_IPACC_RSL_DISCONNECT_NACK,
00242         NM_MT_IPACC_CONN_TRAF           = 0xe6,
00243         NM_MT_IPACC_CONN_TRAF_ACK,
00244         NM_MT_IPACC_CONN_TRAF_NACK,
00245         NM_MT_IPACC_DEF_BOOT_SW         = 0xec,
00246         NM_MT_IPACC_DEF_BOOT_SW_ACK,
00247         MN_MT_IPACC_DEF_BOOT_SW_NACK,
00248         NM_MT_IPACC_SET_NVATTR          = 0xef,
00249         NM_MT_IPACC_SET_NVATTR_ACK,
00250         NM_MT_IPACC_SET_NVATTR_NACK,
00251         NM_MT_IPACC_GET_NVATTR          = 0xf2,
00252         NM_MT_IPACC_GET_NVATTR_ACK,
00253         NM_MT_IPACC_GET_NVATTR_NACK,
00254         NM_MT_IPACC_SET_ATTR            = 0xf5,
00255         NM_MT_IPACC_SET_ATTR_ACK,
00256         NM_MT_IPACC_SET_ATTR_NACK,
00257 };
00258 
00259 enum abis_nm_bs11_cell_alloc {
00260         NM_BS11_CANR_GSM        = 0x00,
00261         NM_BS11_CANR_DCS1800    = 0x01,
00262 };
00263 
00265 enum abis_nm_obj_class {
00266         NM_OC_SITE_MANAGER              = 0x00,
00267         NM_OC_BTS,
00268         NM_OC_RADIO_CARRIER,
00269         NM_OC_CHANNEL,
00270         NM_OC_BASEB_TRANSC,
00271         /* RFU: 05-FE */
00272 
00273         NM_OC_IPAC_E1_TRUNK             = 0x0e,
00274         NM_OC_IPAC_E1_PORT              = 0x0f,
00275         NM_OC_IPAC_E1_CHAN              = 0x10,
00276         NM_OC_IPAC_CLK_MODULE           = 0x22,
00277 
00278         NM_OC_BS11_ADJC                 = 0xa0,
00279         NM_OC_BS11_HANDOVER             = 0xa1,
00280         NM_OC_BS11_PWR_CTRL             = 0xa2,
00281         NM_OC_BS11_BTSE                 = 0xa3,         /* LMT? */
00282         NM_OC_BS11_RACK                 = 0xa4,
00283         NM_OC_BS11                      = 0xa5,         /* 01: ALCO */
00284         NM_OC_BS11_TEST                 = 0xa6,
00285         NM_OC_BS11_ENVABTSE             = 0xa8,
00286         NM_OC_BS11_BPORT                = 0xa9,
00287 
00288         NM_OC_GPRS_NSE                  = 0xf0,
00289         NM_OC_GPRS_CELL                 = 0xf1,
00290         NM_OC_GPRS_NSVC                 = 0xf2,
00291 
00292         NM_OC_NULL                      = 0xff,
00293 };
00294 
00296 enum abis_nm_attr {
00297         NM_ATT_ABIS_CHANNEL     = 0x01,
00298         NM_ATT_ADD_INFO,
00299         NM_ATT_ADD_TEXT,
00300         NM_ATT_ADM_STATE,
00301         NM_ATT_ARFCN_LIST,
00302         NM_ATT_AUTON_REPORT,
00303         NM_ATT_AVAIL_STATUS,
00304         NM_ATT_BCCH_ARFCN,
00305         NM_ATT_BSIC,
00306         NM_ATT_BTS_AIR_TIMER,
00307         NM_ATT_CCCH_L_I_P,
00308         NM_ATT_CCCH_L_T,
00309         NM_ATT_CHAN_COMB,
00310         NM_ATT_CONN_FAIL_CRIT,
00311         NM_ATT_DEST,
00312         /* res */
00313         NM_ATT_EVENT_TYPE       = 0x11, /* BS11: file data ?!? */
00314         NM_ATT_FILE_ID,
00315         NM_ATT_FILE_VERSION,
00316         NM_ATT_GSM_TIME,
00317         NM_ATT_HSN,
00318         NM_ATT_HW_CONFIG,
00319         NM_ATT_HW_DESC,
00320         NM_ATT_INTAVE_PARAM,
00321         NM_ATT_INTERF_BOUND,
00322         NM_ATT_LIST_REQ_ATTR,
00323         NM_ATT_MAIO,
00324         NM_ATT_MANUF_STATE,
00325         NM_ATT_MANUF_THRESH,
00326         NM_ATT_MANUF_ID,
00327         NM_ATT_MAX_TA,
00328         NM_ATT_MDROP_LINK,      /* 0x20 */
00329         NM_ATT_MDROP_NEXT,
00330         NM_ATT_NACK_CAUSES,
00331         NM_ATT_NY1,
00332         NM_ATT_OPER_STATE,
00333         NM_ATT_OVERL_PERIOD,
00334         NM_ATT_PHYS_CONF,
00335         NM_ATT_POWER_CLASS,
00336         NM_ATT_POWER_THRESH,
00337         NM_ATT_PROB_CAUSE,
00338         NM_ATT_RACH_B_THRESH,
00339         NM_ATT_LDAVG_SLOTS,
00340         NM_ATT_RAD_SUBC,
00341         NM_ATT_RF_MAXPOWR_R,
00342         NM_ATT_SITE_INPUTS,
00343         NM_ATT_SITE_OUTPUTS,
00344         NM_ATT_SOURCE,          /* 0x30 */
00345         NM_ATT_SPEC_PROB,
00346         NM_ATT_START_TIME,
00347         NM_ATT_T200,
00348         NM_ATT_TEI,
00349         NM_ATT_TEST_DUR,
00350         NM_ATT_TEST_NO,
00351         NM_ATT_TEST_REPORT,
00352         NM_ATT_VSWR_THRESH,
00353         NM_ATT_WINDOW_SIZE,
00354         /* Res  */
00355         NM_ATT_BS11_RSSI_OFFS   = 0x3d,
00356         NM_ATT_BS11_TXPWR       = 0x3e,
00357         NM_ATT_BS11_DIVERSITY   = 0x3f,
00358         /* Res  */
00359         NM_ATT_TSC              = 0x40,
00360         NM_ATT_SW_CONFIG,
00361         NM_ATT_SW_DESCR,
00362         NM_ATT_SEVERITY,
00363         NM_ATT_GET_ARI,
00364         NM_ATT_HW_CONF_CHG,
00365         NM_ATT_OUTST_ALARM,
00366         NM_ATT_FILE_DATA,
00367         NM_ATT_MEAS_RES,
00368         NM_ATT_MEAS_TYPE,
00369 
00370         NM_ATT_BS11_ESN_FW_CODE_NO      = 0x4c,
00371         NM_ATT_BS11_ESN_HW_CODE_NO      = 0x4f,
00372 
00373         NM_ATT_BS11_ESN_PCB_SERIAL      = 0x55,
00374         NM_ATT_BS11_EXCESSIVE_DISTANCE  = 0x58,
00375 
00376         NM_ATT_BS11_ALL_TEST_CATG       = 0x60,
00377         NM_ATT_BS11_BTSLS_HOPPING,
00378         NM_ATT_BS11_CELL_ALLOC_NR,
00379         NM_ATT_BS11_CELL_GLOBAL_ID,
00380         NM_ATT_BS11_ENA_INTERF_CLASS    = 0x66,
00381         NM_ATT_BS11_ENA_INT_INTEC_HANDO = 0x67,
00382         NM_ATT_BS11_ENA_INT_INTRC_HANDO = 0x68,
00383         NM_ATT_BS11_ENA_MS_PWR_CTRL     = 0x69,
00384         NM_ATT_BS11_ENA_PWR_BDGT_HO     = 0x6a,
00385         NM_ATT_BS11_ENA_PWR_CTRL_RLFW   = 0x6b,
00386         NM_ATT_BS11_ENA_RXLEV_HO        = 0x6c,
00387         NM_ATT_BS11_ENA_RXQUAL_HO       = 0x6d,
00388         NM_ATT_BS11_FACCH_QUAL          = 0x6e,
00389 
00390         NM_ATT_IPACC_DST_IP             = 0x80,
00391         NM_ATT_IPACC_DST_IP_PORT        = 0x81,
00392         NM_ATT_IPACC_SSRC               = 0x82,
00393         NM_ATT_IPACC_RTP_PAYLD_TYPE     = 0x83,
00394         NM_ATT_IPACC_BASEB_ID           = 0x84,
00395         NM_ATT_IPACC_STREAM_ID          = 0x85,
00396         NM_ATT_IPACC_NV_FLAGS           = 0x86,
00397         NM_ATT_IPACC_FREQ_CTRL          = 0x87,
00398         NM_ATT_IPACC_PRIM_OML_CFG       = 0x88,
00399         NM_ATT_IPACC_SEC_OML_CFG        = 0x89,
00400         NM_ATT_IPACC_IP_IF_CFG          = 0x8a,         /* IP interface */
00401         NM_ATT_IPACC_IP_GW_CFG          = 0x8b,         /* IP gateway */
00402         NM_ATT_IPACC_IN_SERV_TIME       = 0x8c,
00403         NM_ATT_IPACC_TRX_BTS_ASS        = 0x8d,
00404         NM_ATT_IPACC_LOCATION           = 0x8e,         /* string describing location */
00405         NM_ATT_IPACC_PAGING_CFG         = 0x8f,
00406         NM_ATT_IPACC_FILE_DATA          = 0x90,
00407         NM_ATT_IPACC_UNIT_ID            = 0x91,         /* Site/BTS/TRX */
00408         NM_ATT_IPACC_PARENT_UNIT_ID     = 0x92,
00409         NM_ATT_IPACC_UNIT_NAME          = 0x93,         /* default: nbts-<mac-as-string> */
00410         NM_ATT_IPACC_SNMP_CFG           = 0x94,
00411         NM_ATT_IPACC_PRIM_OML_CFG_LIST  = 0x95,
00412         NM_ATT_IPACC_PRIM_OML_FB_TOUT   = 0x96,
00413         NM_ATT_IPACC_CUR_SW_CFG         = 0x97,
00414         NM_ATT_IPACC_TIMING_BUS         = 0x98,
00415         NM_ATT_IPACC_CGI                = 0x99,
00416         NM_ATT_IPACC_RAC                = 0x9a,
00417         NM_ATT_IPACC_OBJ_VERSION        = 0x9b,
00418         NM_ATT_IPACC_GPRS_PAGING_CFG    = 0x9c,
00419         NM_ATT_IPACC_NSEI               = 0x9d,
00420         NM_ATT_IPACC_BVCI               = 0x9e,
00421         NM_ATT_IPACC_NSVCI              = 0x9f,
00422         NM_ATT_IPACC_NS_CFG             = 0xa0,
00423         NM_ATT_IPACC_BSSGP_CFG          = 0xa1,
00424         NM_ATT_IPACC_NS_LINK_CFG        = 0xa2,
00425         NM_ATT_IPACC_RLC_CFG            = 0xa3, 
00426         NM_ATT_IPACC_ALM_THRESH_LIST    = 0xa4,
00427         NM_ATT_IPACC_MONIT_VAL_LIST     = 0xa5,
00428         NM_ATT_IPACC_TIB_CONTROL        = 0xa6,
00429         NM_ATT_IPACC_SUPP_FEATURES      = 0xa7,
00430         NM_ATT_IPACC_CODING_SCHEMES     = 0xa8,
00431         NM_ATT_IPACC_RLC_CFG_2          = 0xa9,
00432         NM_ATT_IPACC_HEARTB_TOUT        = 0xaa,
00433         NM_ATT_IPACC_UPTIME             = 0xab,
00434         NM_ATT_IPACC_RLC_CFG_3          = 0xac,
00435         NM_ATT_IPACC_SSL_CFG            = 0xad,
00436         NM_ATT_IPACC_SEC_POSSIBLE       = 0xae,
00437         NM_ATT_IPACC_IML_SSL_STATE      = 0xaf,
00438         NM_ATT_IPACC_REVOC_DATE         = 0xb0,
00439 
00440 
00441         NM_ATT_BS11_RF_RES_IND_PER      = 0x8f,
00442         
00443         NM_ATT_BS11_RX_LEV_MIN_CELL     = 0x90,
00444         NM_ATT_BS11_ABIS_EXT_TIME       = 0x91,
00445         NM_ATT_BS11_TIMER_HO_REQUEST    = 0x92,
00446         NM_ATT_BS11_TIMER_NCELL         = 0x93,
00447         NM_ATT_BS11_TSYNC               = 0x94,
00448         NM_ATT_BS11_TTRAU               = 0x95,
00449         NM_ATT_BS11_EMRG_CFG_MEMBER     = 0x9b,
00450         NM_ATT_BS11_TRX_AREA            = 0x9f,
00451 
00452         NM_ATT_BS11_BCCH_RECONF         = 0xd7,
00453         NM_ATT_BS11_BIT_ERR_THESH       = 0xa0,
00454         NM_ATT_BS11_BOOT_SW_VERS        = 0xa1,
00455         NM_ATT_BS11_CCLK_ACCURACY       = 0xa3,
00456         NM_ATT_BS11_CCLK_TYPE           = 0xa4,
00457         NM_ATT_BS11_INP_IMPEDANCE       = 0xaa,
00458         NM_ATT_BS11_L1_PROT_TYPE        = 0xab,
00459         NM_ATT_BS11_LINE_CFG            = 0xac,
00460         NM_ATT_BS11_LI_PORT_1           = 0xad,
00461         NM_ATT_BS11_LI_PORT_2           = 0xae,
00462 
00463         NM_ATT_BS11_L1_REM_ALM_TYPE     = 0xb0,
00464         NM_ATT_BS11_SW_LOAD_INTENDED    = 0xbb,
00465         NM_ATT_BS11_SW_LOAD_SAFETY      = 0xbc,
00466         NM_ATT_BS11_SW_LOAD_STORED      = 0xbd,
00467 
00468         NM_ATT_BS11_VENDOR_NAME         = 0xc1,
00469         NM_ATT_BS11_HOPPING_MODE        = 0xc5,
00470         NM_ATT_BS11_LMT_LOGON_SESSION   = 0xc6,
00471         NM_ATT_BS11_LMT_LOGIN_TIME      = 0xc7,
00472         NM_ATT_BS11_LMT_USER_ACC_LEV    = 0xc8,
00473         NM_ATT_BS11_LMT_USER_NAME       = 0xc9,
00474 
00475         NM_ATT_BS11_L1_CONTROL_TS       = 0xd8,
00476         NM_ATT_BS11_RADIO_MEAS_GRAN     = 0xdc, /* in SACCH multiframes */
00477         NM_ATT_BS11_RADIO_MEAS_REP      = 0xdd,
00478 
00479         NM_ATT_BS11_SH_LAPD_INT_TIMER   = 0xe8,
00480 
00481         NM_ATT_BS11_BTS_STATE           = 0xf0,
00482         NM_ATT_BS11_E1_STATE            = 0xf1,
00483         NM_ATT_BS11_PLL                 = 0xf2,
00484         NM_ATT_BS11_RX_OFFSET           = 0xf3,
00485         NM_ATT_BS11_ANT_TYPE            = 0xf4,
00486         NM_ATT_BS11_PLL_MODE            = 0xfc,
00487         NM_ATT_BS11_PASSWORD            = 0xfd,
00488 
00489         /* osmocom (osmo-bts) specific attributes, used in combination
00490          * with the "org.osmocom" manufacturer identification */
00491         NM_ATT_OSMO_REDUCEPOWER         = 0xfe, /* TLV_TYPE_TV */
00492 };
00493 #define NM_ATT_BS11_FILE_DATA   NM_ATT_EVENT_TYPE
00494 
00496 enum abis_nm_adm_state {
00497         NM_STATE_LOCKED         = 0x01,
00498         NM_STATE_UNLOCKED       = 0x02,
00499         NM_STATE_SHUTDOWN       = 0x03,
00500         NM_STATE_NULL           = 0xff,
00501 };
00502 
00504 enum abis_nm_avail_state {
00505         NM_AVSTATE_IN_TEST      = 1,
00506         NM_AVSTATE_POWER_OFF    = 2,
00507         NM_AVSTATE_OFF_LINE     = 3,
00508         NM_AVSTATE_DEPENDENCY   = 5,
00509         NM_AVSTATE_DEGRADED     = 6,
00510         NM_AVSTATE_NOT_INSTALLED= 7,
00511         NM_AVSTATE_OK           = 0xff,
00512 };
00513 
00515 enum abis_nm_op_state {
00516         NM_OPSTATE_DISABLED     = 1,
00517         NM_OPSTATE_ENABLED      = 2,
00518         NM_OPSTATE_NULL         = 0xff,
00519 };
00520 
00521 /* \brief Channel Combination (Section 9.4.13) */
00522 enum abis_nm_chan_comb {
00523         NM_CHANC_TCHFull        = 0x00, /* TCH/F + TCH/H + SACCH/TF */
00524         NM_CHANC_TCHHalf        = 0x01, /* TCH/H(0,1) + FACCH/H(0,1) +
00525                                            SACCH/TH(0,1) */
00526         NM_CHANC_TCHHalf2       = 0x02, /* TCH/H(0) + FACCH/H(0) + SACCH/TH(0) +
00527                                            TCH/H(1) */
00528         NM_CHANC_SDCCH          = 0x03, /* SDCCH/8 + SACCH/8 */
00529         NM_CHANC_mainBCCH       = 0x04, /* FCCH + SCH + BCCH + CCCH */
00530         NM_CHANC_BCCHComb       = 0x05, /* FCCH + SCH + BCCH + CCCH + SDCCH/4 +
00531                                            SACCH/C4 */
00532         NM_CHANC_BCCH           = 0x06, /* BCCH + CCCH */
00533         NM_CHANC_BCCH_CBCH      = 0x07, /* CHANC_BCCHComb + CBCH */
00534         NM_CHANC_SDCCH_CBCH     = 0x08, /* CHANC_SDCCH8 + CBCH */
00535         /* ip.access */
00536         NM_CHANC_IPAC_bPDCH     = 0x0b, /* PBCCH + PCCCH + PDTCH/F + PACCH/F +
00537                                            PTCCH/F */
00538         NM_CHANC_IPAC_cPDCH     = 0x0c, /* PBCCH + PDTCH/F + PACCH/F + PTCCH/F */
00539         NM_CHANC_IPAC_PDCH      = 0x0d, /* PDTCH/F + PACCH/F + PTCCH/F */
00540         NM_CHANC_IPAC_TCHFull_PDCH = 0x80,
00541         NM_CHANC_IPAC_TCHFull_TCHHalf = 0x81,
00542 };
00543 
00545 enum abis_nm_event_type {
00546         NM_EVT_COMM_FAIL        = 0x00,
00547         NM_EVT_QOS_FAIL         = 0x01,
00548         NM_EVT_PROC_FAIL        = 0x02,
00549         NM_EVT_EQUIP_FAIL       = 0x03,
00550         NM_EVT_ENV_FAIL         = 0x04,
00551 };
00552 
00554 enum abis_nm_severity {
00555         NM_SEVER_CEASED         = 0x00,
00556         NM_SEVER_CRITICAL       = 0x01,
00557         NM_SEVER_MAJOR          = 0x02,
00558         NM_SEVER_MINOR          = 0x03,
00559         NM_SEVER_WARNING        = 0x04,
00560         NM_SEVER_INDETERMINATE  = 0x05,
00561 };
00562 
00564 enum abis_nm_pcause_type {
00565         NM_PCAUSE_T_X721        = 0x01,
00566         NM_PCAUSE_T_GSM         = 0x02,
00567         NM_PCAUSE_T_MANUF       = 0x03,
00568 };
00569 
00571 enum abis_nm_nack_cause {
00572         /* General Nack Causes */
00573         NM_NACK_INCORR_STRUCT           = 0x01,
00574         NM_NACK_MSGTYPE_INVAL           = 0x02,
00575         NM_NACK_OBJCLASS_INVAL          = 0x05,
00576         NM_NACK_OBJCLASS_NOTSUPP        = 0x06,
00577         NM_NACK_BTSNR_UNKN              = 0x07,
00578         NM_NACK_TRXNR_UNKN              = 0x08,
00579         NM_NACK_OBJINST_UNKN            = 0x09,
00580         NM_NACK_ATTRID_INVAL            = 0x0c,
00581         NM_NACK_ATTRID_NOTSUPP          = 0x0d,
00582         NM_NACK_PARAM_RANGE             = 0x0e,
00583         NM_NACK_ATTRLIST_INCONSISTENT   = 0x0f,
00584         NM_NACK_SPEC_IMPL_NOTSUPP       = 0x10,
00585         NM_NACK_CANT_PERFORM            = 0x11,
00586         /* Specific Nack Causes */
00587         NM_NACK_RES_NOTIMPL             = 0x19,
00588         NM_NACK_RES_NOTAVAIL            = 0x1a,
00589         NM_NACK_FREQ_NOTAVAIL           = 0x1b,
00590         NM_NACK_TEST_NOTSUPP            = 0x1c,
00591         NM_NACK_CAPACITY_RESTR          = 0x1d,
00592         NM_NACK_PHYSCFG_NOTPERFORM      = 0x1e,
00593         NM_NACK_TEST_NOTINIT            = 0x1f,
00594         NM_NACK_PHYSCFG_NOTRESTORE      = 0x20,
00595         NM_NACK_TEST_NOSUCH             = 0x21,
00596         NM_NACK_TEST_NOSTOP             = 0x22,
00597         NM_NACK_MSGINCONSIST_PHYSCFG    = 0x23,
00598         NM_NACK_FILE_INCOMPLETE         = 0x25,
00599         NM_NACK_FILE_NOTAVAIL           = 0x26,
00600         NM_NACK_FILE_NOTACTIVATE        = 0x27,
00601         NM_NACK_REQ_NOT_GRANT           = 0x28,
00602         NM_NACK_WAIT                    = 0x29,
00603         NM_NACK_NOTH_REPORT_EXIST       = 0x2a,
00604         NM_NACK_MEAS_NOTSUPP            = 0x2b,
00605         NM_NACK_MEAS_NOTSTART           = 0x2c,
00606 };
00607 
00609 struct abis_nm_channel {
00610         uint8_t attrib;
00611         uint8_t bts_port;       
00612         uint8_t timeslot;       
00613         uint8_t subslot;        
00614 } __attribute__ ((packed));
00615 
00617 enum abis_bs11_objtype {
00618         BS11_OBJ_ALCO           = 0x01,
00619         BS11_OBJ_BBSIG          = 0x02, /* obj_class: 0,1 */
00620         BS11_OBJ_TRX1           = 0x03, /* only DEACTIVATE TRX1 */
00621         BS11_OBJ_CCLK           = 0x04,
00622         BS11_OBJ_GPSU           = 0x06,
00623         BS11_OBJ_LI             = 0x07,
00624         BS11_OBJ_PA             = 0x09, /* obj_class: 0, 1*/
00625 };
00626 
00628 enum abis_bs11_trx_power {
00629         BS11_TRX_POWER_GSM_2W   = 0x06,
00630         BS11_TRX_POWER_GSM_250mW= 0x07,
00631         BS11_TRX_POWER_GSM_80mW = 0x08,
00632         BS11_TRX_POWER_GSM_30mW = 0x09,
00633         BS11_TRX_POWER_DCS_3W   = 0x0a,
00634         BS11_TRX_POWER_DCS_1W6  = 0x0b,
00635         BS11_TRX_POWER_DCS_500mW= 0x0c,
00636         BS11_TRX_POWER_DCS_160mW= 0x0d,
00637 };
00638 
00640 enum abis_bs11_li_pll_mode {
00641         BS11_LI_PLL_LOCKED      = 2,
00642         BS11_LI_PLL_STANDALONE  = 3,
00643 };
00644 
00646 enum abis_bs11_line_cfg {
00647         BS11_LINE_CFG_STAR      = 0x00,
00648         BS11_LINE_CFG_MULTIDROP = 0x01,
00649         BS11_LINE_CFG_LOOP      = 0x02,
00650 };
00651 
00653 enum abis_bs11_phase {
00654         BS11_STATE_SOFTWARE_RQD         = 0x01,
00655         BS11_STATE_LOAD_SMU_INTENDED    = 0x11,
00656         BS11_STATE_LOAD_SMU_SAFETY      = 0x21,
00657         BS11_STATE_LOAD_FAILED          = 0x31,
00658         BS11_STATE_LOAD_DIAGNOSTIC      = 0x41,
00659         BS11_STATE_WARM_UP              = 0x51,
00660         BS11_STATE_WARM_UP_2            = 0x52,
00661         BS11_STATE_WAIT_MIN_CFG         = 0x62,
00662         BS11_STATE_MAINTENANCE          = 0x72,
00663         BS11_STATE_LOAD_MBCCU           = 0x92,
00664         BS11_STATE_WAIT_MIN_CFG_2       = 0xA2,
00665         BS11_STATE_NORMAL               = 0x03,
00666         BS11_STATE_ABIS_LOAD            = 0x13,
00667 };
00668 
00670 enum abis_nm_ipacc_test_no {
00671         NM_IPACC_TESTNO_RLOOP_ANT       = 0x01,
00672         NM_IPACC_TESTNO_RLOOP_XCVR      = 0x02,
00673         NM_IPACC_TESTNO_FUNC_OBJ        = 0x03,
00674         NM_IPACC_TESTNO_CHAN_USAGE      = 0x40,
00675         NM_IPACC_TESTNO_BCCH_CHAN_USAGE = 0x41,
00676         NM_IPACC_TESTNO_FREQ_SYNC       = 0x42,
00677         NM_IPACC_TESTNO_BCCH_INFO       = 0x43,
00678         NM_IPACC_TESTNO_TX_BEACON       = 0x44,
00679         NM_IPACC_TESTNO_SYSINFO_MONITOR = 0x45,
00680         NM_IPACC_TESTNO_BCCCH_MONITOR   = 0x46,
00681 };
00682 
00684 enum abis_nm_ipacc_test_res {
00685         NM_IPACC_TESTRES_SUCCESS        = 0,
00686         NM_IPACC_TESTRES_TIMEOUT        = 1,
00687         NM_IPACC_TESTRES_NO_CHANS       = 2,
00688         NM_IPACC_TESTRES_PARTIAL        = 3,
00689         NM_IPACC_TESTRES_STOPPED        = 4,
00690 };
00691 
00693 enum abis_nm_ipacc_testres_ie {
00694         NM_IPACC_TR_IE_FREQ_ERR_LIST    = 3,
00695         NM_IPACC_TR_IE_CHAN_USAGE       = 4,
00696         NM_IPACC_TR_IE_BCCH_INFO        = 6,
00697         NM_IPACC_TR_IE_RESULT_DETAILS   = 8,
00698         NM_IPACC_TR_IE_FREQ_ERR         = 18,
00699 };
00700 
00702 enum ipac_eie {
00703         NM_IPAC_EIE_ARFCN_WHITE         = 0x01,
00704         NM_IPAC_EIE_ARFCH_BLACK         = 0x02,
00705         NM_IPAC_EIE_FREQ_ERR_LIST       = 0x03,
00706         NM_IPAC_EIE_CHAN_USE_LIST       = 0x04,
00707         NM_IPAC_EIE_BCCH_INFO_TYPE      = 0x05,
00708         NM_IPAC_EIE_BCCH_INFO           = 0x06,
00709         NM_IPAC_EIE_CONFIG              = 0x07,
00710         NM_IPAC_EIE_RES_DETAILS         = 0x08,
00711         NM_IPAC_EIE_RXLEV_THRESH        = 0x09,
00712         NM_IPAC_EIE_FREQ_SYNC_OPTS      = 0x0a,
00713         NM_IPAC_EIE_MAC_ADDR            = 0x0b,
00714         NM_IPAC_EIE_HW_SW_COMPAT_NR     = 0x0c,
00715         NM_IPAC_EIE_MANUF_SER_NR        = 0x0d,
00716         NM_IPAC_EIE_OEM_ID              = 0x0e,
00717         NM_IPAC_EIE_DATE_TIME_MANUF     = 0x0f,
00718         NM_IPAC_EIE_DATE_TIME_CALIB     = 0x10,
00719         NM_IPAC_EIE_BEACON_INFO         = 0x11,
00720         NM_IPAC_EIE_FREQ_ERR            = 0x12,
00721         /* FIXME */
00722         NM_IPAC_EIE_FREQ_BANDS          = 0x1c,
00723         NM_IPAC_EIE_MAX_TA              = 0x1d,
00724         NM_IPAC_EIE_CIPH_ALGOS          = 0x1e,
00725         NM_IPAC_EIE_CHAN_TYPES          = 0x1f,
00726         NM_IPAC_EIE_CHAN_MODES          = 0x20,
00727         NM_IPAC_EIE_GPRS_CODING         = 0x21,
00728         NM_IPAC_EIE_RTP_FEATURES        = 0x22,
00729         NM_IPAC_EIE_RSL_FEATURES        = 0x23,
00730         NM_IPAC_EIE_BTS_HW_CLASS        = 0x24,
00731         NM_IPAC_EIE_BTS_ID              = 0x25,
00732 };
00733 
00735 enum ipac_bcch_info_type {
00736         IPAC_BINF_RXLEV                 = (1 << 8),
00737         IPAC_BINF_RXQUAL                = (1 << 9),
00738         IPAC_BINF_FREQ_ERR_QUAL         = (1 << 10),
00739         IPAC_BINF_FRAME_OFFSET          = (1 << 11),
00740         IPAC_BINF_FRAME_NR_OFFSET       = (1 << 12),
00741         IPAC_BINF_BSIC                  = (1 << 13),
00742         IPAC_BINF_CGI                   = (1 << 14),
00743         IPAC_BINF_NEIGH_BA_SI2          = (1 << 15),
00744         IPAC_BINF_NEIGH_BA_SI2bis       = (1 << 0),
00745         IPAC_BINF_NEIGH_BA_SI2ter       = (1 << 1),
00746         IPAC_BINF_CELL_ALLOC            = (1 << 2),
00747 };
00748