Hi!
This patch applies on top of the wireshark/0001-abis_oml.patch.
It converts the C99 structure initialization which is not accepted by
the wireshark developers (Harald told me that they need it to compile
with non-gcc compilers which don't always support C99).
I have tested it here with four pcap files that Harald passed to me. It
works fine.
BTW, *with* and *without* this patch, wireshark with dissector spots
warnings like:
18:14:15 Warn Dissector bug, protocol A-bis OML, in packet 13:
packet-gsm_abis_oml.c:940: failed assertion "DISSECTOR_ASSERT_NOT_REACHED"
It seems that some TLVs that appear in the body of packets are unknown.
I'll debug which are the complaining tags and get back you.
[PATCH] wireshark: gsm-abis-oml: convert C99 structure initialization to ANSI C
This patch applies on top of the wireshark/0001-abis_oml.patch.
This patch converts the C99 structure initialization which is not
accepted by the wireshark developers (Harald told me that they need
it to compile with non-gcc compilers which don't always support C99).
I have tested it here with four pcap files that Harald passed to me.
Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c
===================================================================
--- wireshark.orig/epan/dissectors/packet-gsm_abis_oml.c 2011-03-03 16:05:16.000000000 +0100
+++ wireshark/epan/dissectors/packet-gsm_abis_oml.c 2011-03-03 17:49:05.000000000 +0100
@@ -729,6 +729,12 @@ static const value_string ipacc_testres_
{ 0, NULL }
};
+/* ANSI C does not allow selective initialization of arrays, for that reason,
+ * we initialize these three TLV definitions in proto_register_abis_oml(). */
+static struct tlv_definition nm_att_tlvdef_base;
+static struct tlv_definition nm_att_tlvdev_bs11;
+static struct tlv_definition nm_att_tlvdef_ipa;
+
static const struct tlv_def *
find_tlv_tag(guint8 tag)
{
@@ -1551,6 +1557,168 @@ proto_register_abis_oml(void)
module_t *oml_module;
+#define NM_ATT_TLVDEF_BASE(_attr, _type, _fixed_len) \
+ nm_att_tlvdef_base.def[_attr].type = _type; \
+ nm_att_tlvdef_base.def[_attr].fixed_len = _fixed_len; \
+
+ /* From openbsc/src/abis_nm.c, converted to support ANSI C. */
+ NM_ATT_TLVDEF_BASE(NM_ATT_ABIS_CHANNEL, TLV_TYPE_FIXED, 3);
+ NM_ATT_TLVDEF_BASE(NM_ATT_ADD_INFO, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_ADD_TEXT, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_ADM_STATE, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_ARFCN_LIST, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_AUTON_REPORT, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_AVAIL_STATUS, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_BCCH_ARFCN, TLV_TYPE_FIXED, 2);
+ NM_ATT_TLVDEF_BASE(NM_ATT_BSIC, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_BTS_AIR_TIMER, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_CCCH_L_I_P, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_CCCH_L_T, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_CHAN_COMB, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_CONN_FAIL_CRIT, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_DEST, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_EVENT_TYPE, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_FILE_ID, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_FILE_VERSION, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_GSM_TIME, TLV_TYPE_FIXED, 2);
+ NM_ATT_TLVDEF_BASE(NM_ATT_HSN, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_HW_CONFIG, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_HW_DESC, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_INTAVE_PARAM, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_INTERF_BOUND, TLV_TYPE_FIXED, 6);
+ NM_ATT_TLVDEF_BASE(NM_ATT_LIST_REQ_ATTR, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_MAIO, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_MANUF_STATE, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_MANUF_THRESH, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_MANUF_ID, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_MAX_TA, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_MDROP_LINK, TLV_TYPE_FIXED, 2);
+ NM_ATT_TLVDEF_BASE(NM_ATT_MDROP_NEXT, TLV_TYPE_FIXED, 2);
+ NM_ATT_TLVDEF_BASE(NM_ATT_NACK_CAUSES, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_NY1, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_OPER_STATE, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_OVERL_PERIOD, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_PHYS_CONF, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_POWER_CLASS, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_POWER_THRESH, TLV_TYPE_FIXED, 3);
+ NM_ATT_TLVDEF_BASE(NM_ATT_PROB_CAUSE, TLV_TYPE_FIXED, 3);
+ NM_ATT_TLVDEF_BASE(NM_ATT_RACH_B_THRESH, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_LDAVG_SLOTS, TLV_TYPE_FIXED, 2);
+ NM_ATT_TLVDEF_BASE(NM_ATT_RAD_SUBC, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_RF_MAXPOWR_R, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_SITE_INPUTS, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_SITE_OUTPUTS, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_SOURCE, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_SPEC_PROB, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_START_TIME, TLV_TYPE_FIXED, 2);
+ NM_ATT_TLVDEF_BASE(NM_ATT_T200, TLV_TYPE_FIXED, 7);
+ NM_ATT_TLVDEF_BASE(NM_ATT_TEI, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_TEST_DUR, TLV_TYPE_FIXED, 2);
+ NM_ATT_TLVDEF_BASE(NM_ATT_TEST_NO, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_TEST_REPORT, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_VSWR_THRESH, TLV_TYPE_FIXED, 2);
+ NM_ATT_TLVDEF_BASE(NM_ATT_WINDOW_SIZE, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_TSC, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_SW_CONFIG, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_SEVERITY, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_GET_ARI, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_HW_CONF_CHG, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_OUTST_ALARM, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_FILE_DATA, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_BASE(NM_ATT_MEAS_RES, TLV_TYPE_TL16V, 0);
+
+ /* BS 11 specifics */
+#define NM_ATT_TLVDEV_BS11(_attr, _type, _fixed_len) \
+ nm_att_tlvdev_bs11.def[_attr].type = _type; \
+ nm_att_tlvdev_bs11.def[_attr].fixed_len = _fixed_len; \
+
+ /* different stndard IEs */
+ NM_ATT_TLVDEV_BS11(NM_ATT_OUTST_ALARM, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_HW_DESC, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_ARFCN_LIST, TLV_TYPE_TLV16, 0);
+
+ /* proprietary IEs */
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_ABIS_EXT_TIME, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_OM_LAPD_REL_TIMER, TLV_TYPE_FIXED, 2);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_SH_LAPD_INT_TIMER, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_EMERG_TIMER1, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_EMERG_TIMER2, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_BTSLS_HOPPING, TLV_TYPE_FIXED, 1);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_CELL_ALLOC_NR, TLV_TYPE_FIXED, 1);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_ENA_INTERF_CLASS, TLV_TYPE_FIXED, 1);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_FACCH_QUAL, TLV_TYPE_FIXED, 1);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_TSYNC, TLV_TYPE_FIXED, 2);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_TTRAU, TLV_TYPE_FIXED, 2);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_EXCESSIVE_DISTANCE,TLV_TYPE_TLV, 1);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_HOPPING_MODE, TLV_TYPE_TLV, 1);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_RF_RES_IND_PER, TLV_TYPE_FIXED, 1);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_RADIO_MEAS_GRAN, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_RADIO_MEAS_REP, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_EMRG_CFG_MEMBER, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_TRX_AREA, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_ESN_FW_CODE_NO, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_ESN_HW_CODE_NO, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_ESN_PCB_SERIAL, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_BOOT_SW_VERS, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(0x59, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(0xd5, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(0xa8, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_PASSWORD, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_TXPWR, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_RSSI_OFFS, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_LINE_CFG, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_L1_PROT_TYPE, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_BIT_ERR_THESH, TLV_TYPE_FIXED, 2);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_DIVERSITY, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_LMT_LOGON_SESSION, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_LMT_LOGIN_TIME, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_LMT_USER_ACC_LEV, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_LMT_USER_NAME, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_BTS_STATE, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_E1_STATE, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_PLL_MODE, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_PLL, TLV_TYPE_TLV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_CCLK_ACCURACY, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEV_BS11(NM_ATT_BS11_CCLK_TYPE, TLV_TYPE_TV, 0);
+
+ /* ip.access specifics */
+#define NM_ATT_TLVDEF_IPA(_attr, _type, _fixed_len) \
+ nm_att_tlvdef_ipa.def[_attr].type = _type; \
+ nm_att_tlvdef_ipa.def[_attr].fixed_len = _fixed_len; \
+
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_DST_IP, TLV_TYPE_FIXED, 4);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_DST_IP_PORT, TLV_TYPE_FIXED, 2);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_PRIM_OML_CFG, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_NV_FLAGS, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_FREQ_CTRL, TLV_TYPE_FIXED, 2);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_SEC_OML_CFG, TLV_TYPE_FIXED, 6);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_IP_IF_CFG, TLV_TYPE_FIXED, 8);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_IP_GW_CFG, TLV_TYPE_FIXED, 12);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_LOCATION, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_UNIT_ID, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_UNIT_NAME, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_SNMP_CFG, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_ALM_THRESH_LIST, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_CUR_SW_CFG, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_STREAM_ID, TLV_TYPE_TV, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_RAC, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_OBJ_VERSION, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_GPRS_PAGING_CFG, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_NSEI, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_BVCI, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_NSVCI, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_NS_CFG, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_BSSGP_CFG, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_NS_LINK_CFG, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_RLC_CFG, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_SUPP_FEATURES, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_CODING_SCHEMES, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_RLC_CFG_2, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_RLC_CFG_3, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_PAGING_CFG, TLV_TYPE_FIXED, 2);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_FILE_DATA, TLV_TYPE_TL16V, 0);
+ NM_ATT_TLVDEF_IPA(NM_ATT_IPACC_CGI, TLV_TYPE_TL16V, 0);
+
/* assign our custom match functions */
oml_fom_msgtype_vse._vs_match = _match_oml_fom_msgtype;
oml_fom_attr_vse._vs_match = _match_oml_fom_attr;
Index: wireshark/epan/dissectors/packet-gsm_abis_oml.h
===================================================================
--- wireshark.orig/epan/dissectors/packet-gsm_abis_oml.h 2011-03-03 16:05:28.000000000 +0100
+++ wireshark/epan/dissectors/packet-gsm_abis_oml.h 2011-03-03 17:24:11.000000000 +0100
@@ -664,167 +664,4 @@ enum abis_nm_ipacc_testres_ie {
NM_IPACC_TR_IE_FREQ_ERR = 18,
};
-/* From openbsc/src/abis_nm.c */
-static const struct tlv_definition nm_att_tlvdef_base = {
- .def = {
- [NM_ATT_ABIS_CHANNEL] = { TLV_TYPE_FIXED, 3 },
- [NM_ATT_ADD_INFO] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_ADD_TEXT] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_ADM_STATE] = { TLV_TYPE_TV, 0 },
- [NM_ATT_ARFCN_LIST]= { TLV_TYPE_TL16V, 0 },
- [NM_ATT_AUTON_REPORT] = { TLV_TYPE_TV, 0 },
- [NM_ATT_AVAIL_STATUS] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_BCCH_ARFCN] = { TLV_TYPE_FIXED, 2 },
- [NM_ATT_BSIC] = { TLV_TYPE_TV, 0 },
- [NM_ATT_BTS_AIR_TIMER] = { TLV_TYPE_TV, 0 },
- [NM_ATT_CCCH_L_I_P] = { TLV_TYPE_TV, 0 },
- [NM_ATT_CCCH_L_T] = { TLV_TYPE_TV, 0 },
- [NM_ATT_CHAN_COMB] = { TLV_TYPE_TV, 0 },
- [NM_ATT_CONN_FAIL_CRIT] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_DEST] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_EVENT_TYPE] = { TLV_TYPE_TV, 0 },
- [NM_ATT_FILE_ID] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_FILE_VERSION] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_GSM_TIME] = { TLV_TYPE_FIXED, 2 },
- [NM_ATT_HSN] = { TLV_TYPE_TV, 0 },
- [NM_ATT_HW_CONFIG] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_HW_DESC] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_INTAVE_PARAM] = { TLV_TYPE_TV, 0 },
- [NM_ATT_INTERF_BOUND] = { TLV_TYPE_FIXED, 6 },
- [NM_ATT_LIST_REQ_ATTR] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_MAIO] = { TLV_TYPE_TV, 0 },
- [NM_ATT_MANUF_STATE] = { TLV_TYPE_TV, 0 },
- [NM_ATT_MANUF_THRESH] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_MANUF_ID] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_MAX_TA] = { TLV_TYPE_TV, 0 },
- [NM_ATT_MDROP_LINK] = { TLV_TYPE_FIXED, 2 },
- [NM_ATT_MDROP_NEXT] = { TLV_TYPE_FIXED, 2 },
- [NM_ATT_NACK_CAUSES] = { TLV_TYPE_TV, 0 },
- [NM_ATT_NY1] = { TLV_TYPE_TV, 0 },
- [NM_ATT_OPER_STATE] = { TLV_TYPE_TV, 0 },
- [NM_ATT_OVERL_PERIOD] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_PHYS_CONF] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_POWER_CLASS] = { TLV_TYPE_TV, 0 },
- [NM_ATT_POWER_THRESH] = { TLV_TYPE_FIXED, 3 },
- [NM_ATT_PROB_CAUSE] = { TLV_TYPE_FIXED, 3 },
- [NM_ATT_RACH_B_THRESH] = { TLV_TYPE_TV, 0 },
- [NM_ATT_LDAVG_SLOTS] = { TLV_TYPE_FIXED, 2 },
- [NM_ATT_RAD_SUBC] = { TLV_TYPE_TV, 0 },
- [NM_ATT_RF_MAXPOWR_R] = { TLV_TYPE_TV, 0 },
- [NM_ATT_SITE_INPUTS] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_SITE_OUTPUTS] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_SOURCE] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_SPEC_PROB] = { TLV_TYPE_TV, 0 },
- [NM_ATT_START_TIME] = { TLV_TYPE_FIXED, 2 },
- [NM_ATT_T200] = { TLV_TYPE_FIXED, 7 },
- [NM_ATT_TEI] = { TLV_TYPE_TV, 0 },
- [NM_ATT_TEST_DUR] = { TLV_TYPE_FIXED, 2 },
- [NM_ATT_TEST_NO] = { TLV_TYPE_TV, 0 },
- [NM_ATT_TEST_REPORT] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_VSWR_THRESH] = { TLV_TYPE_FIXED, 2 },
- [NM_ATT_WINDOW_SIZE] = { TLV_TYPE_TV, 0 },
- [NM_ATT_TSC] = { TLV_TYPE_TV, 0 },
- [NM_ATT_SW_CONFIG] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_SEVERITY] = { TLV_TYPE_TV, 0 },
- [NM_ATT_GET_ARI] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_HW_CONF_CHG] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_OUTST_ALARM] = { TLV_TYPE_TV, 0 },
- [NM_ATT_FILE_DATA] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_MEAS_RES] = { TLV_TYPE_TL16V, 0 },
-
- },
-};
-
-/* BS11 specifics */
-static const struct tlv_definition nm_att_tlvdev_bs11 = {
- .def = {
- /* different stndard IEs */
- [NM_ATT_OUTST_ALARM] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_HW_DESC] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_ARFCN_LIST]= { TLV_TYPE_TLV16, 0 },
-
- /* proprietary IEs */
- [NM_ATT_BS11_ABIS_EXT_TIME] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_OM_LAPD_REL_TIMER]={ TLV_TYPE_FIXED, 2 },
- [NM_ATT_BS11_SH_LAPD_INT_TIMER]={ TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_EMERG_TIMER1] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_EMERG_TIMER2] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_BTSLS_HOPPING] = { TLV_TYPE_FIXED, 1 },
- [NM_ATT_BS11_CELL_ALLOC_NR] = { TLV_TYPE_FIXED, 1 },
- [NM_ATT_BS11_ENA_INTERF_CLASS]= { TLV_TYPE_FIXED, 1 },
- [NM_ATT_BS11_FACCH_QUAL] = { TLV_TYPE_FIXED, 1 },
- [NM_ATT_BS11_TSYNC] = { TLV_TYPE_FIXED, 2 },
- [NM_ATT_BS11_TTRAU] = { TLV_TYPE_FIXED, 2 },
- [NM_ATT_BS11_EXCESSIVE_DISTANCE] = { TLV_TYPE_TLV, 1 },
- [NM_ATT_BS11_HOPPING_MODE] = { TLV_TYPE_TLV, 1 },
- [NM_ATT_BS11_RF_RES_IND_PER] = { TLV_TYPE_FIXED, 1 },
- [NM_ATT_BS11_RADIO_MEAS_GRAN] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_RADIO_MEAS_REP] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_EMRG_CFG_MEMBER] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_TRX_AREA] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_ESN_FW_CODE_NO] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_ESN_HW_CODE_NO] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_ESN_PCB_SERIAL] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_BOOT_SW_VERS] = { TLV_TYPE_TLV, 0 },
- [0x59] = { TLV_TYPE_TLV, 0 },
- [0xd5] = { TLV_TYPE_TLV, 0 },
- [0xa8] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_PASSWORD] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_TXPWR] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_RSSI_OFFS] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_LINE_CFG] = { TLV_TYPE_TV, 0 },
- [NM_ATT_BS11_L1_PROT_TYPE] = { TLV_TYPE_TV, 0 },
- [NM_ATT_BS11_BIT_ERR_THESH] = { TLV_TYPE_FIXED, 2 },
- [NM_ATT_BS11_DIVERSITY] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_LMT_LOGON_SESSION]={ TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_LMT_LOGIN_TIME] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_LMT_USER_ACC_LEV] ={ TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_LMT_USER_NAME] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_BTS_STATE] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_E1_STATE] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_PLL_MODE] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_PLL] = { TLV_TYPE_TLV, 0 },
- [NM_ATT_BS11_CCLK_ACCURACY] = { TLV_TYPE_TV, 0 },
- [NM_ATT_BS11_CCLK_TYPE] = { TLV_TYPE_TV, 0 },
- },
-};
-
-/* ip.access specifics */
-static const struct tlv_definition nm_att_tlvdef_ipa = {
- .def = {
- [NM_ATT_IPACC_DST_IP] = { TLV_TYPE_FIXED, 4 },
- [NM_ATT_IPACC_DST_IP_PORT] = { TLV_TYPE_FIXED, 2 },
- [NM_ATT_IPACC_PRIM_OML_CFG] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_NV_FLAGS] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_FREQ_CTRL] = { TLV_TYPE_FIXED, 2 },
- [NM_ATT_IPACC_SEC_OML_CFG] = { TLV_TYPE_FIXED, 6 },
- [NM_ATT_IPACC_IP_IF_CFG] = { TLV_TYPE_FIXED, 8 },
- [NM_ATT_IPACC_IP_GW_CFG] = { TLV_TYPE_FIXED, 12 },
- [NM_ATT_IPACC_LOCATION] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_UNIT_ID] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_UNIT_NAME] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_SNMP_CFG] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_ALM_THRESH_LIST]= { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_CUR_SW_CFG] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_STREAM_ID] = { TLV_TYPE_TV, 0 },
- [NM_ATT_IPACC_RAC] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_OBJ_VERSION] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_GPRS_PAGING_CFG] ={ TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_NSEI] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_BVCI] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_NSVCI] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_NS_CFG] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_BSSGP_CFG] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_NS_LINK_CFG] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_RLC_CFG] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_SUPP_FEATURES] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_CODING_SCHEMES] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_RLC_CFG_2] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_RLC_CFG_3] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_PAGING_CFG] = { TLV_TYPE_FIXED, 2 },
- [NM_ATT_IPACC_FILE_DATA] = { TLV_TYPE_TL16V, 0 },
- [NM_ATT_IPACC_CGI] = { TLV_TYPE_TL16V, 0 },
- },
-};
-
#endif /* _NM_H */