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 */

Reply via email to