Merge branch 'master' into sms

This commit is contained in:
Harald Welte 2009-07-04 09:21:47 +02:00
commit 8a396b73e1
6 changed files with 288 additions and 99 deletions

View File

@ -362,6 +362,7 @@ enum abis_nm_attr {
NM_ATT_IPACC_RSL_BSC_PORT = 0x81, NM_ATT_IPACC_RSL_BSC_PORT = 0x81,
NM_ATT_IPACC_NV_FLAGS = 0x86, NM_ATT_IPACC_NV_FLAGS = 0x86,
NM_ATT_IPACC_FREQ_CTRL = 0x87, NM_ATT_IPACC_FREQ_CTRL = 0x87,
NM_ATT_IPACC_SEC_OML_CFG = 0x89,
NM_ATT_IPACC_IP_IF_CFG = 0x8a, /* IP interface */ NM_ATT_IPACC_IP_IF_CFG = 0x8a, /* IP interface */
NM_ATT_IPACC_IP_GW_CFG = 0x8b, /* IP gateway */ NM_ATT_IPACC_IP_GW_CFG = 0x8b, /* IP gateway */
NM_ATT_IPACC_IN_SERV_TIME = 0x8c, NM_ATT_IPACC_IN_SERV_TIME = 0x8c,

View File

@ -357,8 +357,19 @@ static const struct tlv_definition nm_att_tlvdef = {
/* ip.access specifics */ /* ip.access specifics */
[NM_ATT_IPACC_RSL_BSC_IP] = { TLV_TYPE_FIXED, 4 }, [NM_ATT_IPACC_RSL_BSC_IP] = { TLV_TYPE_FIXED, 4 },
[NM_ATT_IPACC_RSL_BSC_PORT] = { TLV_TYPE_FIXED, 2 }, [NM_ATT_IPACC_RSL_BSC_PORT] = { TLV_TYPE_FIXED, 2 },
[NM_ATT_IPACC_PRIM_OML_IP] = { TLV_TYPE_FIXED, 6 }, [NM_ATT_IPACC_PRIM_OML_IP] = { TLV_TYPE_TL16V },
[0x95] = { TLV_TYPE_FIXED, 2 }, [NM_ATT_IPACC_NV_FLAGS] = { TLV_TYPE_TL16V },
[NM_ATT_IPACC_FREQ_CTRL] = { TLV_TYPE_FIXED, 2 },
[NM_ATT_IPACC_SEC_OML_IP] = { TLV_TYPE_TL16V }, // wrong name
[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 },
[NM_ATT_IPACC_UNIT_ID] = { TLV_TYPE_TL16V },
[NM_ATT_IPACC_UNIT_NAME] = { TLV_TYPE_TL16V },
[NM_ATT_IPACC_SNMP_CFG] = { TLV_TYPE_TL16V },
[NM_ATT_IPACC_ALM_THRESH_LIST]= { TLV_TYPE_TL16V },
//[0x95] = { TLV_TYPE_FIXED, 2 },
[0x85] = { TLV_TYPE_TV }, [0x85] = { TLV_TYPE_TV },
}, },
@ -2282,6 +2293,18 @@ static int abis_nm_rx_ipacc(struct msgb *msg)
else else
DEBUGPC(DNM, "\n"); DEBUGPC(DNM, "\n");
break; break;
case NM_MT_IPACC_GET_NVATTR_ACK:
DEBUGPC(DNM, "GET NVATTR ACK\n");
/* FIXME: decode and show the actual attributes */
break;
case NM_MT_IPACC_GET_NVATTR_NACK:
DEBUGPC(DNM, "GET NVATTR NACK ");
if (TLVP_PRESENT(&tp, NM_ATT_NACK_CAUSES))
DEBUGPC(DNM, " CAUSE=%s\n",
nack_cause_name(*TLVP_VAL(&tp, NM_ATT_NACK_CAUSES)));
else
DEBUGPC(DNM, "\n");
break;
default: default:
DEBUGPC(DNM, "unknown\n"); DEBUGPC(DNM, "unknown\n");
break; break;

View File

@ -43,6 +43,8 @@ static struct gsm_network *gsmnet;
static int restart; static int restart;
static char *prim_oml_ip; static char *prim_oml_ip;
static char *unit_id; static char *unit_id;
static u_int16_t nv_flags;
static u_int16_t nv_mask;
/* /*
static u_int8_t prim_oml_attr[] = { 0x95, 0x00, 7, 0x88, 192, 168, 100, 11, 0x00, 0x00 }; static u_int8_t prim_oml_attr[] = { 0x95, 0x00, 7, 0x88, 192, 168, 100, 11, 0x00, 0x00 };
@ -53,6 +55,7 @@ static void bootstrap_om(struct gsm_bts *bts)
{ {
int len; int len;
static u_int8_t buf[1024]; static u_int8_t buf[1024];
u_int8_t *cur = buf;
printf("OML link established\n"); printf("OML link established\n");
@ -70,7 +73,6 @@ static void bootstrap_om(struct gsm_bts *bts)
} }
if (prim_oml_ip) { if (prim_oml_ip) {
struct in_addr ia; struct in_addr ia;
u_int8_t *cur = buf;
if (!inet_aton(prim_oml_ip, &ia)) { if (!inet_aton(prim_oml_ip, &ia)) {
fprintf(stderr, "invalid IP address: %s\n", fprintf(stderr, "invalid IP address: %s\n",
@ -92,6 +94,20 @@ static void bootstrap_om(struct gsm_bts *bts)
printf("setting primary OML link IP to '%s'\n", inet_ntoa(ia)); printf("setting primary OML link IP to '%s'\n", inet_ntoa(ia));
abis_nm_ipaccess_set_nvattr(bts, buf, 3+len); abis_nm_ipaccess_set_nvattr(bts, buf, 3+len);
} }
if (nv_mask) {
len = 4;
*cur++ = NM_ATT_IPACC_NV_FLAGS;
*cur++ = (len) >> 8;
*cur++ = (len) & 0xff;
*cur++ = nv_flags & 0xff;
*cur++ = nv_mask & 0xff;
*cur++ = nv_flags >> 8;
*cur++ = nv_mask >> 8;
printf("setting NV Flags/Mask to 0x%04x/0x%04x\n",
nv_flags, nv_mask);
abis_nm_ipaccess_set_nvattr(bts, buf, 3+len);
}
if (restart) { if (restart) {
printf("restarting BTS\n"); printf("restarting BTS\n");
@ -140,13 +156,15 @@ int main(int argc, char **argv)
while (1) { while (1) {
int c; int c;
unsigned long ul;
char *slash;
static struct option long_options[] = { static struct option long_options[] = {
{ "unit-id", 1, 0, 'u' }, { "unit-id", 1, 0, 'u' },
{ "oml-ip", 1, 0, 'o' }, { "oml-ip", 1, 0, 'o' },
{ "restart", 0, 0, 'r' }, { "restart", 0, 0, 'r' },
}; };
c = getopt_long(argc, argv, "u:o:r", long_options, c = getopt_long(argc, argv, "u:o:rn:", long_options,
&option_index); &option_index);
if (c == -1) if (c == -1)
@ -162,6 +180,15 @@ int main(int argc, char **argv)
case 'r': case 'r':
restart = 1; restart = 1;
break; break;
case 'n':
slash = strchr(optarg, '/');
if (!slash)
exit(2);
ul = strtoul(optarg, NULL, 16);
nv_flags = ul & 0xffff;
ul = strtoul(slash+1, NULL, 16);
nv_mask = ul & 0xffff;
break;
} }
}; };

View File

@ -1,20 +1,20 @@
Index: wireshark/epan/dissectors/Makefile.common Index: wireshark/epan/dissectors/Makefile.common
=================================================================== ===================================================================
--- wireshark.orig/epan/dissectors/Makefile.common 2009-06-25 15:04:16.000000000 +0200 --- wireshark.orig/epan/dissectors/Makefile.common 2009-07-03 22:20:16.000000000 +0200
+++ wireshark/epan/dissectors/Makefile.common 2009-06-29 13:30:06.000000000 +0200 +++ wireshark/epan/dissectors/Makefile.common 2009-07-04 03:46:47.000000000 +0200
@@ -874,6 +874,7 @@ @@ -926,6 +926,7 @@
# Dissectors with warnings.
# #
DIRTY_DISSECTOR_SRC = \ DIRTY_DISSECTOR_SRC = \
packet-abis_ip.c \ + packet-gsm_abis_oml.c \
+ packet-abis_oml.c \ packet-isakmp.c \
packet-k12.c \ packet-k12.c \
packet-nbd.c \ packet-nbd.c \
packet-sccp.c \ Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c
Index: wireshark/epan/dissectors/packet-abis_oml.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ wireshark/epan/dissectors/packet-abis_oml.c 2009-07-01 17:39:35.000000000 +0200 +++ wireshark/epan/dissectors/packet-gsm_abis_oml.c 2009-07-04 03:47:46.000000000 +0200
@@ -0,0 +1,1115 @@ @@ -0,0 +1,1241 @@
+/* packet-abis_oml.c +/* packet-abis_oml.c
+ * Routines for packet dissection of GSM A-bis over IP (3GPP TS 12.21) + * Routines for packet dissection of GSM A-bis over IP (3GPP TS 12.21)
+ * Copyright 2009 by Harald Welte <laforge@gnumonks.org> + * Copyright 2009 by Harald Welte <laforge@gnumonks.org>
@ -50,7 +50,7 @@ Index: wireshark/epan/dissectors/packet-abis_oml.c
+#include <epan/packet.h> +#include <epan/packet.h>
+#include <epan/emem.h> +#include <epan/emem.h>
+ +
+#include "packet-abis_oml.h" +#include "packet-gsm_abis_oml.h"
+#include "packet-gsm_a_common.h" +#include "packet-gsm_a_common.h"
+ +
+/* initialize the protocol and registered fields */ +/* initialize the protocol and registered fields */
@ -91,6 +91,7 @@ Index: wireshark/epan/dissectors/packet-abis_oml.c
+static int hf_oml_ipa_tres_attr_len = -1; +static int hf_oml_ipa_tres_attr_len = -1;
+static int hf_attr_ipa_test_res = -1; +static int hf_attr_ipa_test_res = -1;
+static int hf_attr_ipa_tr_rxlev = -1; +static int hf_attr_ipa_tr_rxlev = -1;
+static int hf_attr_ipa_tr_b_rxlev = -1;
+static int hf_attr_ipa_tr_arfcn = -1; +static int hf_attr_ipa_tr_arfcn = -1;
+static int hf_attr_ipa_tr_f_qual = -1; +static int hf_attr_ipa_tr_f_qual = -1;
+static int hf_attr_ipa_tr_f_err = -1; +static int hf_attr_ipa_tr_f_err = -1;
@ -99,8 +100,19 @@ Index: wireshark/epan/dissectors/packet-abis_oml.c
+static int hf_attr_ipa_tr_framenr_offs = -1; +static int hf_attr_ipa_tr_framenr_offs = -1;
+static int hf_attr_ipa_tr_bsic = -1; +static int hf_attr_ipa_tr_bsic = -1;
+static int hf_attr_ipa_tr_cell_id = -1; +static int hf_attr_ipa_tr_cell_id = -1;
+static int hf_attr_ipa_tr_si2 = -1;
+static int hf_attr_ipa_tr_si2bis = -1;
+static int hf_attr_ipa_tr_si2ter = -1;
+static int hf_attr_ipa_tr_chan_desc = -1;
+static int hf_attr_ipa_rsl_ip = -1; +static int hf_attr_ipa_rsl_ip = -1;
+static int hf_attr_ipa_rsl_port = -1; +static int hf_attr_ipa_rsl_port = -1;
+static int hf_attr_ipa_prim_oml_ip = -1;
+static int hf_attr_ipa_prim_oml_port = -1;
+static int hf_attr_ipa_location_name = -1;
+static int hf_attr_ipa_unit_id = -1;
+static int hf_attr_ipa_unit_name = -1;
+static int hf_attr_ipa_nv_flags = -1;
+static int hf_attr_ipa_nv_mask = -1;
+ +
+/* initialize the subtree pointers */ +/* initialize the subtree pointers */
+static int ett_oml = -1; +static int ett_oml = -1;
@ -528,36 +540,75 @@ Index: wireshark/epan/dissectors/packet-abis_oml.c
+static gint +static gint
+ipacc_tr_ie_bcch(tvbuff_t *tvb, proto_tree *att_tree, int offset) +ipacc_tr_ie_bcch(tvbuff_t *tvb, proto_tree *att_tree, int offset)
+{ +{
+ guint16 binfo_type = tvb_get_ntohs(tvb, offset); + guint16 binfo_type, tmp;
+ guint16 tmp = tvb_get_ntohs(tvb, offset+2); +
+ binfo_type = tvb_get_ntohs(tvb, offset);
+ offset += 2;
+
+ tmp = tvb_get_ntohs(tvb, offset);
+ +
+ /* FIXME: there are still some bugs remaining here */ + /* FIXME: there are still some bugs remaining here */
+ proto_tree_add_item(att_tree, hf_attr_ipa_tr_arfcn, + proto_tree_add_item(att_tree, hf_attr_ipa_tr_arfcn,
+ tvb, offset, 2, TRUE); + tvb, offset, 2, TRUE);
+
+ proto_tree_add_item(att_tree, hf_attr_ipa_tr_f_qual, + proto_tree_add_item(att_tree, hf_attr_ipa_tr_f_qual,
+ tvb, offset, 2, TRUE); + tvb, offset, 2, TRUE);
+ offset += 2; + offset += 2;
+ proto_tree_add_item(att_tree, hf_attr_ipa_tr_rxlev, +
+ proto_tree_add_item(att_tree, hf_attr_ipa_tr_b_rxlev,
+ tvb, offset++, 1, TRUE); + tvb, offset++, 1, TRUE);
+
+ proto_tree_add_item(att_tree, hf_attr_ipa_tr_rxqual, + proto_tree_add_item(att_tree, hf_attr_ipa_tr_rxqual,
+ tvb, offset++, 1, TRUE); + tvb, offset++, 1, TRUE);
+
+ proto_tree_add_item(att_tree, hf_attr_ipa_tr_f_err, + proto_tree_add_item(att_tree, hf_attr_ipa_tr_f_err,
+ tvb, offset, 2, TRUE); + tvb, offset, 2, TRUE);
+ offset += 2; + offset += 2;
+
+ proto_tree_add_item(att_tree, hf_attr_ipa_tr_frame_offs, + proto_tree_add_item(att_tree, hf_attr_ipa_tr_frame_offs,
+ tvb, offset, 2, TRUE); + tvb, offset, 2, TRUE);
+ offset += 2; + offset += 2;
+ proto_tree_add_item(att_tree, hf_attr_ipa_tr_framenr_offs, + proto_tree_add_item(att_tree, hf_attr_ipa_tr_framenr_offs,
+ tvb, offset, 4, TRUE); + tvb, offset, 4, TRUE);
+ offset += 4; + offset += 4;
+
+ proto_tree_add_item(att_tree, hf_attr_ipa_tr_bsic, + proto_tree_add_item(att_tree, hf_attr_ipa_tr_bsic,
+ tvb, offset++, 1, TRUE); + tvb, offset++, 1, TRUE);
+
+ de_lai(tvb, att_tree, offset, 5, NULL, 0); + de_lai(tvb, att_tree, offset, 5, NULL, 0);
+ offset += 5; + offset += 5;
+
+ proto_tree_add_item(att_tree, hf_attr_ipa_tr_cell_id, + proto_tree_add_item(att_tree, hf_attr_ipa_tr_cell_id,
+ tvb, offset, 2, TRUE); + tvb, offset, 2, TRUE);
+ offset += 2; + offset += 2;
+ /* FIXME: parse GSM 04.18 IE's */ +
+ if (binfo_type & 0x8000) {
+ /* System Information 2 */
+ /* FIXME: Parse 04.18 Neighbour Cell Description */
+ proto_tree_add_item(att_tree, hf_attr_ipa_tr_si2,
+ tvb, offset, 16, TRUE);
+ offset += 16;
+ }
+ if (binfo_type & 0x0001) {
+ /* System Information 2bis */
+ /* FIXME: Parse 04.18 Neighbour Cell Description */
+ proto_tree_add_item(att_tree, hf_attr_ipa_tr_si2bis,
+ tvb, offset, 16, TRUE);
+ offset += 16;
+ }
+ if (binfo_type & 0x0002) {
+ /* System Information 2ter */
+ /* FIXME: Parse 04.18 Neighbour Cell Description */
+ proto_tree_add_item(att_tree, hf_attr_ipa_tr_si2ter,
+ tvb, offset, 16, TRUE);
+ offset += 16;
+ }
+ if (binfo_type & 0x0004) {
+ /* FIXME: Parse 04.18 Cell Channel Description */
+ proto_tree_add_item(att_tree, hf_attr_ipa_tr_chan_desc,
+ tvb, offset, 16, TRUE);
+ offset += 16;
+ }
+ +
+ return offset; + return offset;
+} +}
@ -779,14 +830,38 @@ Index: wireshark/epan/dissectors/packet-abis_oml.c
+ offset, len, TRUE); + offset, len, TRUE);
+ break; + break;
+ case NM_ATT_IPACC_LOCATION: + case NM_ATT_IPACC_LOCATION:
+ proto_tree_add_item(att_tree, hf_attr_ipa_location_name,
+ tvb, offset, len, TRUE);
+ break; + break;
+ case NM_ATT_IPACC_UNIT_ID: + case NM_ATT_IPACC_UNIT_ID:
+ proto_tree_add_item(att_tree, hf_attr_ipa_unit_id,
+ tvb, offset, len, TRUE);
+ break; + break;
+ case NM_ATT_IPACC_UNIT_NAME: + case NM_ATT_IPACC_UNIT_NAME:
+ proto_tree_add_item(att_tree, hf_attr_ipa_unit_name,
+ tvb, offset, len, TRUE);
+ break; + break;
+ case NM_ATT_IPACC_PRIM_OML_IP: + case NM_ATT_IPACC_PRIM_OML_IP:
+ proto_tree_add_item(att_tree, hf_attr_ipa_prim_oml_ip,
+ tvb, offset+1, 4, TRUE);
+ proto_tree_add_item(att_tree, hf_attr_ipa_prim_oml_port,
+ tvb, offset+1+4, 2, TRUE);
+ break; + break;
+ case NM_ATT_IPACC_SEC_OML_IP: + case NM_ATT_IPACC_SEC_OML_IP:
+ /* FIXME */
+ break;
+ case NM_ATT_IPACC_NV_FLAGS:
+ {
+ guint flags, mask;
+ flags = tvb_get_guint8(tvb, offset);
+ mask = tvb_get_guint8(tvb, offset+1);
+ flags |= tvb_get_guint8(tvb, offset+2) << 8;
+ mask |= tvb_get_guint8(tvb, offset+3) << 8;
+ proto_tree_add_uint(att_tree, hf_attr_ipa_nv_flags,
+ tvb, offset, 3, flags);
+ proto_tree_add_uint(att_tree, hf_attr_ipa_nv_mask,
+ tvb, offset+1, 3, mask);
+ }
+ break; + break;
+ default: + default:
+ proto_tree_add_item(att_tree, hf_oml_fom_attr_val, tvb, + proto_tree_add_item(att_tree, hf_oml_fom_attr_val, tvb,
@ -897,62 +972,62 @@ Index: wireshark/epan/dissectors/packet-abis_oml.c
+ { &hf_oml_msg_disc, + { &hf_oml_msg_disc,
+ { "Message Discriminator", "oml.msg_dsc", + { "Message Discriminator", "oml.msg_dsc",
+ FT_UINT8, BASE_HEX, VALS(oml_msg_disc_vals), 0, + FT_UINT8, BASE_HEX, VALS(oml_msg_disc_vals), 0,
+ "Message Discriminator", HFILL } + "GSM 12.21 Message Discriminator", HFILL }
+ }, + },
+ { &hf_oml_placement, + { &hf_oml_placement,
+ { "Placement Indicator", "oml.placement", + { "Placement Indicator", "oml.placement",
+ FT_UINT8, BASE_HEX, VALS(oml_placement_vals), 0, + FT_UINT8, BASE_HEX, VALS(oml_placement_vals), 0,
+ "Placement Indicator", HFILL } + "GSM 12.21 Placement Indicator", HFILL }
+ }, + },
+ { &hf_oml_sequence, + { &hf_oml_sequence,
+ { "Sequence Number", "oml.sequence", + { "Sequence Number", "oml.sequence",
+ FT_UINT8, BASE_HEX, NULL, 0, + FT_UINT8, BASE_HEX, NULL, 0,
+ "Sequence Number", HFILL } + "Sequence Number (if multi-part msg)", HFILL }
+ }, + },
+ { &hf_oml_length, + { &hf_oml_length,
+ { "Length Indicator", "oml.length", + { "Length Indicator", "oml.length",
+ FT_UINT8, BASE_DEC, NULL, 0, + FT_UINT8, BASE_DEC, NULL, 0,
+ "Length Indicator", HFILL } + "Total length of payload", HFILL }
+ }, + },
+ { &hf_oml_fom_msgtype, + { &hf_oml_fom_msgtype,
+ { "FOM Message Type", "oml.fom.msg_type", + { "FOM Message Type", "oml.fom.msg_type",
+ FT_UINT8, BASE_HEX, VALS(oml_fom_msgtype_vals), 0, + FT_UINT8, BASE_HEX, VALS(oml_fom_msgtype_vals), 0,
+ "FOM Message Type", HFILL } + NULL, HFILL }
+ }, + },
+ { &hf_oml_fom_objclass, + { &hf_oml_fom_objclass,
+ { "FOM Object Class", "oml.fom.obj_class", + { "FOM Object Class", "oml.fom.obj_class",
+ FT_UINT8, BASE_HEX, VALS(oml_fom_objclass_vals), 0, + FT_UINT8, BASE_HEX, VALS(oml_fom_objclass_vals), 0,
+ "FOM Object Class", HFILL } + NULL, HFILL }
+ }, + },
+ { &hf_oml_fom_inst_bts, + { &hf_oml_fom_inst_bts,
+ { "FOM Object Instance BTS", "oml.fom.obj_inst.bts", + { "FOM Object Instance BTS", "oml.fom.obj_inst.bts",
+ FT_UINT8, BASE_DEC, NULL, 0, + FT_UINT8, BASE_DEC, NULL, 0,
+ "FOM Object Instance TRX", HFILL } + NULL, HFILL }
+ }, + },
+ { &hf_oml_fom_inst_trx, + { &hf_oml_fom_inst_trx,
+ { "FOM Object Instance TRX", "oml.fom.obj_inst.trx", + { "FOM Object Instance TRX", "oml.fom.obj_inst.trx",
+ FT_UINT8, BASE_DEC, NULL, 0, + FT_UINT8, BASE_DEC, NULL, 0,
+ "FOM Object Instance TRX", HFILL } + NULL, HFILL }
+ }, + },
+ { &hf_oml_fom_inst_ts, + { &hf_oml_fom_inst_ts,
+ { "FOM Object Instance TS", "oml.fom.obj_inst.ts", + { "FOM Object Instance TS", "oml.fom.obj_inst.ts",
+ FT_UINT8, BASE_DEC, NULL, 0, + FT_UINT8, BASE_DEC, NULL, 0,
+ "FOM Object Instance TS", HFILL } + NULL, HFILL }
+ }, + },
+ { &hf_oml_fom_attr_tag, + { &hf_oml_fom_attr_tag,
+ { "FOM Attribute ID", "oml.fom.attr_id", + { "FOM Attribute ID", "oml.fom.attr_id",
+ FT_UINT8, BASE_HEX, VALS(oml_fom_attr_vals), 0, + FT_UINT8, BASE_HEX, VALS(oml_fom_attr_vals), 0,
+ "FOM Attribute ID", HFILL } + NULL, HFILL }
+ }, + },
+ { &hf_oml_fom_attr_len, + { &hf_oml_fom_attr_len,
+ { "FOM Attribute Length", "oml.fom.attr_len", + { "FOM Attribute Length", "oml.fom.attr_len",
+ FT_UINT16, BASE_DEC, NULL, 0, + FT_UINT16, BASE_DEC, NULL, 0,
+ "FOM Attribute Length", HFILL } + NULL, HFILL }
+ }, + },
+ { &hf_oml_fom_attr_val, + { &hf_oml_fom_attr_val,
+ { "FOM Attribute Value", "oml.fom.attr_val", + { "FOM Attribute Value", "oml.fom.attr_val",
+ FT_BYTES, BASE_HEX, NULL, 0, + FT_BYTES, BASE_HEX, NULL, 0,
+ "FOM Attribute Value", HFILL } + NULL, HFILL }
+ }, + },
+ +
+ +
@ -961,27 +1036,27 @@ Index: wireshark/epan/dissectors/packet-abis_oml.c
+ { &hf_attr_adm_state, + { &hf_attr_adm_state,
+ { "Administrative State", "oml.fom.attr.adm_state", + { "Administrative State", "oml.fom.attr.adm_state",
+ FT_UINT8, BASE_HEX, VALS(oml_adm_state_vals), 0, + FT_UINT8, BASE_HEX, VALS(oml_adm_state_vals), 0,
+ "Administrative State", HFILL } + NULL, HFILL }
+ }, + },
+ { &hf_attr_oper_state, + { &hf_attr_oper_state,
+ { "Operational State", "oml.fom.attr.oper_state", + { "Operational State", "oml.fom.attr.oper_state",
+ FT_UINT8, BASE_HEX, VALS(oml_oper_state_vals), 0, + FT_UINT8, BASE_HEX, VALS(oml_oper_state_vals), 0,
+ "Operational State", HFILL } + NULL, HFILL }
+ }, + },
+ { &hf_attr_avail_state, + { &hf_attr_avail_state,
+ { "Availability Status", "oml.fom.attr.avail_state", + { "Availability Status", "oml.fom.attr.avail_state",
+ FT_UINT8, BASE_HEX, VALS(oml_avail_state_vals), 0, + FT_UINT8, BASE_HEX, VALS(oml_avail_state_vals), 0,
+ "Availability Status", HFILL } + NULL, HFILL }
+ }, + },
+ { &hf_attr_event_type, + { &hf_attr_event_type,
+ { "Event Type", "oml.fom.attr.event_type", + { "Event Type", "oml.fom.attr.event_type",
+ FT_UINT8, BASE_HEX, VALS(oml_event_type_vals), 0, + FT_UINT8, BASE_HEX, VALS(oml_event_type_vals), 0,
+ "Event Type", HFILL } + NULL, HFILL }
+ }, + },
+ { &hf_attr_severity, + { &hf_attr_severity,
+ { "Severity", "oml.fom.attr.severity", + { "Severity", "oml.fom.attr.severity",
+ FT_UINT8, BASE_HEX, VALS(oml_severity_vals), 0, + FT_UINT8, BASE_HEX, VALS(oml_severity_vals), 0,
+ "Severity", HFILL } + NULL, HFILL }
+ }, + },
+ { &hf_attr_bcch_arfcn, + { &hf_attr_bcch_arfcn,
+ { "BCCH ARFCN", "oml.fom.attr.bcch_arfcn", + { "BCCH ARFCN", "oml.fom.attr.bcch_arfcn",
@ -996,7 +1071,7 @@ Index: wireshark/epan/dissectors/packet-abis_oml.c
+ { &hf_attr_test_no, + { &hf_attr_test_no,
+ { "Test Number", "oml.fom.attr.test_no", + { "Test Number", "oml.fom.attr.test_no",
+ FT_UINT8, BASE_HEX, VALS(oml_test_no_vals), 0, + FT_UINT8, BASE_HEX, VALS(oml_test_no_vals), 0,
+ "Test Number", HFILL } + NULL, HFILL }
+ }, + },
+ { &hf_attr_tsc, + { &hf_attr_tsc,
+ { "TSC", "oml.fom.attr.tsc", + { "TSC", "oml.fom.attr.tsc",
@ -1006,22 +1081,22 @@ Index: wireshark/epan/dissectors/packet-abis_oml.c
+ { &hf_attr_tei, + { &hf_attr_tei,
+ { "TEI", "oml.fom.attr.tei", + { "TEI", "oml.fom.attr.tei",
+ FT_UINT8, BASE_DEC, NULL, 0, + FT_UINT8, BASE_DEC, NULL, 0,
+ "TEI", HFILL } + NULL, HFILL }
+ }, + },
+ { &hf_attr_ach_btsp, + { &hf_attr_ach_btsp,
+ { "BTS Port", "oml.fom.attr.abis_ch.bts_port", + { "BTS E1 Port", "oml.fom.attr.abis_ch.bts_port",
+ FT_UINT8, BASE_DEC, NULL, 0, + FT_UINT8, BASE_DEC, NULL, 0,
+ "BTS Port", HFILL } + NULL, HFILL }
+ }, + },
+ { &hf_attr_ach_tslot, + { &hf_attr_ach_tslot,
+ { "Timeslot", "oml.fom.attr.abis_ch.timeslot", + { "E1 Timeslot", "oml.fom.attr.abis_ch.timeslot",
+ FT_UINT8, BASE_DEC, NULL, 0, + FT_UINT8, BASE_DEC, NULL, 0,
+ "Time Slot", HFILL } + NULL, HFILL }
+ }, + },
+ { &hf_attr_ach_sslot, + { &hf_attr_ach_sslot,
+ { "Subslot", "oml.fom.attr.abis_ch.subslot", + { "E1 Subslot", "oml.fom.attr.abis_ch.subslot",
+ FT_UINT8, BASE_DEC, NULL, 0, + FT_UINT8, BASE_DEC, NULL, 0,
+ "Subslot", HFILL } + NULL, HFILL }
+ }, + },
+ { &hf_attr_gsm_time, + { &hf_attr_gsm_time,
+ { "GSM Time", "oml.fom.attr.gsm_time", + { "GSM Time", "oml.fom.attr.gsm_time",
@ -1031,60 +1106,59 @@ Index: wireshark/epan/dissectors/packet-abis_oml.c
+ { &hf_attr_chan_comb, + { &hf_attr_chan_comb,
+ { "Channel Combination", "oml.fom.attr.chan_comb", + { "Channel Combination", "oml.fom.attr.chan_comb",
+ FT_UINT8, BASE_HEX, VALS(oml_chan_comb_vals), 0, + FT_UINT8, BASE_HEX, VALS(oml_chan_comb_vals), 0,
+ "Channel Combination", HFILL } + NULL, HFILL }
+ }, + },
+ /* IP Access */ + /* IP Access */
+ { &hf_oml_ipa_tres_attr_tag, + { &hf_oml_ipa_tres_attr_tag,
+ { "IPA Test Result Embedded IE", + { "IPA Test Result Embedded IE",
+ "oml.fom.testrep.ipa_tag", + "oml.fom.testrep.ipa_tag",
+ FT_UINT8, BASE_HEX, VALS(ipacc_testres_ie_vals), 0, + FT_UINT8, BASE_HEX, VALS(ipacc_testres_ie_vals), 0,
+ "IPA Test Result Embedded IE", HFILL }, + "Information Element embedded into the Test Result "
+ "of ip.access BTS", HFILL },
+ }, + },
+ { &hf_oml_ipa_tres_attr_len, + { &hf_oml_ipa_tres_attr_len,
+ { "IPA Test Result Embedded IE Length", + { "IPA Test Result Embedded IE Length",
+ "oml.fom.testrep.ipa_len", + "oml.fom.testrep.ipa_len",
+ FT_UINT16, BASE_DEC, NULL, 0, + FT_UINT16, BASE_DEC, NULL, 0,
+ "IPA Test Result Embedded IE Length", HFILL } + "Length of ip.access Test Result Embedded IE", HFILL }
+ }, + },
+ { &hf_attr_ipa_test_res, + { &hf_attr_ipa_test_res,
+ { "IPA Test Result", "oml.fom.testrep.result", + { "IPA Test Result", "oml.fom.testrep.result",
+ FT_UINT8, BASE_DEC, VALS(ipacc_test_res_vals), 0, + FT_UINT8, BASE_DEC, VALS(ipacc_test_res_vals), 0,
+ "IPA Test Result", HFILL } + NULL, HFILL }
+ }, + },
+ { &hf_attr_ipa_tr_rxlev, + { &hf_attr_ipa_tr_rxlev,
+ { "Rx Level", "oml.fom.testrep.ipa_rxlev", + { "Rx Level", "oml.fom.testrep.ipa_rxlev",
+ FT_UINT16, BASE_DEC, NULL, 0xfc00, + FT_UINT16, BASE_DEC, NULL, 0xfc00, NULL, HFILL }
+ "Rx Level", HFILL } + },
+ { &hf_attr_ipa_tr_b_rxlev,
+ { "Rx Level", "oml.fom.testrep.ipa_rxlev_b",
+ FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }
+ }, + },
+ { &hf_attr_ipa_tr_arfcn, + { &hf_attr_ipa_tr_arfcn,
+ { "ARFCN", "oml.fom.testrep.ipa_arfcn", + { "ARFCN", "oml.fom.testrep.ipa_arfcn",
+ FT_UINT16, BASE_DEC, NULL, 0x03ff, + FT_UINT16, BASE_DEC, NULL, 0x03ff, "ARFCN", HFILL }
+ "ARFCN", HFILL }
+ }, + },
+ { &hf_attr_ipa_tr_f_qual, + { &hf_attr_ipa_tr_f_qual,
+ { "Frequency Quality", "oml.fom.testrep.ipa.freq_qual", + { "Frequency Quality", "oml.fom.testrep.ipa.freq_qual",
+ FT_UINT8, BASE_DEC, NULL, 0xfc, + FT_UINT8, BASE_DEC, NULL, 0xfc, NULL, HFILL }
+ "Frequency Quality", HFILL }
+ }, + },
+ { &hf_attr_ipa_tr_f_err, + { &hf_attr_ipa_tr_f_err,
+ { "Frequency Error", "oml.fom.testrep.ipa.freq_err", + { "Frequency Error", "oml.fom.testrep.ipa.freq_err",
+ FT_UINT16, BASE_DEC, NULL, 0, + FT_INT16, BASE_DEC, NULL, 0, NULL, HFILL }
+ "Frequency Error", HFILL }
+ }, + },
+ { &hf_attr_ipa_tr_rxqual, + { &hf_attr_ipa_tr_rxqual,
+ { "Rx Quality", "oml.fom.testrep.ipa.rx_qual", + { "Rx Quality", "oml.fom.testrep.ipa.rx_qual",
+ FT_UINT8, BASE_DEC, NULL, 0x7, + FT_UINT8, BASE_DEC, NULL, 0x7, NULL, HFILL }
+ "Rx Quality", HFILL }
+ }, + },
+ { &hf_attr_ipa_tr_frame_offs, + { &hf_attr_ipa_tr_frame_offs,
+ { "Frame Offset", "oml.fom.testrep.ipa.frame_offset", + { "Frame Offset", "oml.fom.testrep.ipa.frame_offset",
+ FT_UINT16, BASE_DEC, NULL, 0, + FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }
+ "Frame Offset", HFILL }
+ }, + },
+ { &hf_attr_ipa_tr_framenr_offs, + { &hf_attr_ipa_tr_framenr_offs,
+ { "Frame Number Offset", "oml.fom.testrep.ipa.framenr_offset", + { "Frame Number Offset",
+ FT_UINT32, BASE_DEC, NULL, 0, + "oml.fom.testrep.ipa.framenr_offset",
+ "Frame Number Offset", HFILL } + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }
+ }, + },
+ { &hf_attr_ipa_tr_bsic, + { &hf_attr_ipa_tr_bsic,
+ { "BSIC", "oml.fom.testrep.ipa.bsic", + { "BSIC", "oml.fom.testrep.ipa.bsic",
@ -1093,18 +1167,70 @@ Index: wireshark/epan/dissectors/packet-abis_oml.c
+ }, + },
+ { &hf_attr_ipa_tr_cell_id, + { &hf_attr_ipa_tr_cell_id,
+ { "Cell ID", "oml.fom.testrep.ipa.cell_id", + { "Cell ID", "oml.fom.testrep.ipa.cell_id",
+ FT_UINT16, BASE_HEX, NULL, 0, + FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }
+ "Cell ID", HFILL }
+ }, + },
+ { &hf_attr_ipa_rsl_ip, + { &hf_attr_ipa_rsl_ip,
+ { "BSC RSL IP Address", "oml.fom.attr.ipa.rsl_ip", + { "BSC RSL IP Address", "oml.fom.attr.ipa.rsl_ip",
+ FT_IPv4, BASE_NONE, NULL, 0, + FT_IPv4, BASE_NONE, NULL, 0,
+ "BSC RSL IP Address", HFILL } + "IP Address to which the BTS establishes "
+ "the RSL link", HFILL }
+ }, + },
+ { &hf_attr_ipa_rsl_port, + { &hf_attr_ipa_rsl_port,
+ { "BSC RSL TCP Port", "oml.fom.attr.ipa.rsl_port", + { "BSC RSL TCP Port", "oml.fom.attr.ipa.rsl_port",
+ FT_UINT16, BASE_DEC, NULL, 0, + FT_UINT16, BASE_DEC, NULL, 0,
+ "BSC RSL TCP Port", HFILL } + "Port number to which the BST establishes "
+ "the RSL link", HFILL }
+ },
+ { &hf_attr_ipa_prim_oml_ip,
+ { "Primary OML IP Address",
+ "oml.fom.attr.ipa.prim_oml_ip",
+ FT_IPv4, BASE_NONE, NULL, 0,
+ "IP Address of the BSC for the primary OML link",
+ HFILL }
+ },
+ { &hf_attr_ipa_prim_oml_port,
+ { "Primary OML TCP Port",
+ "oml.fom.attr.ipa.prim_oml_port",
+ FT_UINT16, BASE_DEC, NULL, 0,
+ "TCP Port of the BSC for the primarly OML link",
+ HFILL }
+ },
+ { &hf_attr_ipa_location_name,
+ { "Location Name", "oml.fom.attr.ipa.loc_name",
+ FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }
+ },
+ { &hf_attr_ipa_unit_name,
+ { "Unit Name", "oml.fom.attr.ipa.unit_name",
+ FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }
+ },
+ { &hf_attr_ipa_unit_id,
+ { "Unit ID", "oml.fom.attr.ipa.unit_id",
+ FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }
+ },
+ { &hf_attr_ipa_nv_flags,
+ { "NVRAM Config Flags", "oml.fom.attr.ipa.nv_flags",
+ FT_UINT16, BASE_HEX, NULL, 0xffff, NULL, HFILL }
+ },
+ { &hf_attr_ipa_nv_mask,
+ { "NVRAM Config Mask", "oml.fom.attr.ipa.nv_mask",
+ FT_UINT16, BASE_HEX, NULL, 0xffff, NULL, HFILL }
+ },
+ { &hf_attr_ipa_tr_si2,
+ { "System Information 2", "oml.fom.attr.ipa.si2",
+ FT_BYTES, BASE_HEX, NULL, 0, NULL, HFILL }
+ },
+ { &hf_attr_ipa_tr_si2bis,
+ { "System Information 2bis", "oml.fom.attr.ipa.si2bis",
+ FT_BYTES, BASE_HEX, NULL, 0, NULL, HFILL }
+ },
+ { &hf_attr_ipa_tr_si2ter,
+ { "System Information 2ter", "oml.fom.attr.ipa.si2ter",
+ FT_BYTES, BASE_HEX, NULL, 0, NULL, HFILL }
+ },
+ { &hf_attr_ipa_tr_chan_desc,
+ { "Cell Channel Description",
+ "oml.fom.attr.ipa.chan_desc",
+ FT_BYTES, BASE_HEX, NULL, 0, NULL, HFILL }
+ }, + },
+ }; + };
+ static gint *ett[] = { + static gint *ett[] = {
@ -1130,11 +1256,11 @@ Index: wireshark/epan/dissectors/packet-abis_oml.c
+ +
+ abis_oml_handle = find_dissector("abis_oml"); + abis_oml_handle = find_dissector("abis_oml");
+} +}
Index: wireshark/epan/dissectors/packet-abis_oml.h Index: wireshark/epan/dissectors/packet-gsm_abis_oml.h
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ wireshark/epan/dissectors/packet-abis_oml.h 2009-07-01 11:27:15.000000000 +0200 +++ wireshark/epan/dissectors/packet-gsm_abis_oml.h 2009-07-04 03:46:47.000000000 +0200
@@ -0,0 +1,714 @@ @@ -0,0 +1,726 @@
+/* GSM Network Management messages on the A-bis interface +/* GSM Network Management messages on the A-bis interface
+ * 3GPP TS 12.21 version 8.0.0 Release 1999 / ETSI TS 100 623 V8.0.0 */ + * 3GPP TS 12.21 version 8.0.0 Release 1999 / ETSI TS 100 623 V8.0.0 */
+ +
@ -1497,6 +1623,7 @@ Index: wireshark/epan/dissectors/packet-abis_oml.h
+ NM_ATT_IPACC_RSL_BSC_PORT = 0x81, + NM_ATT_IPACC_RSL_BSC_PORT = 0x81,
+ NM_ATT_IPACC_NV_FLAGS = 0x86, + NM_ATT_IPACC_NV_FLAGS = 0x86,
+ NM_ATT_IPACC_FREQ_CTRL = 0x87, + NM_ATT_IPACC_FREQ_CTRL = 0x87,
+ NM_ATT_IPACC_SEC_OML_CFG = 0x89,
+ NM_ATT_IPACC_IP_IF_CFG = 0x8a, /* IP interface */ + NM_ATT_IPACC_IP_IF_CFG = 0x8a, /* IP interface */
+ NM_ATT_IPACC_IP_GW_CFG = 0x8b, /* IP gateway */ + NM_ATT_IPACC_IP_GW_CFG = 0x8b, /* IP gateway */
+ NM_ATT_IPACC_IN_SERV_TIME = 0x8c, + NM_ATT_IPACC_IN_SERV_TIME = 0x8c,
@ -1840,8 +1967,19 @@ Index: wireshark/epan/dissectors/packet-abis_oml.h
+ /* ip.access specifics */ + /* ip.access specifics */
+ [NM_ATT_IPACC_RSL_BSC_IP] = { TLV_TYPE_FIXED, 4 }, + [NM_ATT_IPACC_RSL_BSC_IP] = { TLV_TYPE_FIXED, 4 },
+ [NM_ATT_IPACC_RSL_BSC_PORT] = { TLV_TYPE_FIXED, 2 }, + [NM_ATT_IPACC_RSL_BSC_PORT] = { TLV_TYPE_FIXED, 2 },
+ [NM_ATT_IPACC_PRIM_OML_IP] = { TLV_TYPE_FIXED, 6 }, + [NM_ATT_IPACC_PRIM_OML_IP] = { TLV_TYPE_TL16V },
+ [0x95] = { TLV_TYPE_FIXED, 2 }, + [NM_ATT_IPACC_NV_FLAGS] = { TLV_TYPE_TL16V },
+ [NM_ATT_IPACC_FREQ_CTRL] = { TLV_TYPE_FIXED, 2 },
+ [NM_ATT_IPACC_SEC_OML_IP] = { TLV_TYPE_TL16V }, // wrong name
+ [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 },
+ [NM_ATT_IPACC_UNIT_ID] = { TLV_TYPE_TL16V },
+ [NM_ATT_IPACC_UNIT_NAME] = { TLV_TYPE_TL16V },
+ [NM_ATT_IPACC_SNMP_CFG] = { TLV_TYPE_TL16V },
+ [NM_ATT_IPACC_ALM_THRESH_LIST]= { TLV_TYPE_TL16V },
+ //[0x95] = { TLV_TYPE_FIXED, 2 },
+ [0x9b] = { TLV_TYPE_TL16V }, + [0x9b] = { TLV_TYPE_TL16V },
+ [0x85] = { TLV_TYPE_TV }, + [0x85] = { TLV_TYPE_TV },
+ +

View File

@ -1,19 +1,19 @@
Index: epan/dissectors/Makefile.common Index: epan/dissectors/Makefile.common
=================================================================== ===================================================================
--- epan/dissectors/Makefile.common.orig 2009-02-28 15:39:56.000000000 +0100 --- epan/dissectors/Makefile.common.orig 2009-07-03 22:19:54.000000000 +0200
+++ epan/dissectors/Makefile.common 2009-06-25 15:04:16.000000000 +0200 +++ epan/dissectors/Makefile.common 2009-07-03 22:20:16.000000000 +0200
@@ -873,6 +873,7 @@ @@ -471,6 +471,7 @@
# Dissectors with warnings. packet-gsm_a_gm.c \
# packet-gsm_a_rp.c \
DIRTY_DISSECTOR_SRC = \ packet-gsm_a_rr.c \
+ packet-abis_ip.c \ + packet-gsm_abis_ip.c \
packet-k12.c \ packet-gsm_bsslap.c \
packet-nbd.c \ packet-gsm_bssmap_le.c \
packet-sccp.c \ packet-gsm_sms.c \
Index: epan/dissectors/packet-rsl.c Index: epan/dissectors/packet-rsl.c
=================================================================== ===================================================================
--- epan/dissectors/packet-rsl.c.orig 2009-02-28 15:39:51.000000000 +0100 --- epan/dissectors/packet-rsl.c.orig 2009-07-03 22:19:54.000000000 +0200
+++ epan/dissectors/packet-rsl.c 2009-02-28 15:39:56.000000000 +0100 +++ epan/dissectors/packet-rsl.c 2009-07-03 22:20:16.000000000 +0200
@@ -3950,6 +3950,7 @@ @@ -3950,6 +3950,7 @@
proto_register_field_array(proto_rsl, hf, array_length(hf)); proto_register_field_array(proto_rsl, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett)); proto_register_subtree_array(ett, array_length(ett));
@ -22,12 +22,12 @@ Index: epan/dissectors/packet-rsl.c
} }
Index: epan/dissectors/packet-abis_ip.c Index: epan/dissectors/packet-gsm_abis_ip.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ epan/dissectors/packet-abis_ip.c 2009-06-25 15:04:42.000000000 +0200 +++ epan/dissectors/packet-gsm_abis_ip.c 2009-07-03 22:20:16.000000000 +0200
@@ -0,0 +1,279 @@ @@ -0,0 +1,279 @@
+/* packet-abis_ip.c +/* packet-gsm_abis_ip.c
+ * Routines for packet dissection of ip.access A-bis over IP + * Routines for packet dissection of ip.access A-bis over IP
+ * Copyright 2009 by Harald Welte <laforge@gnumonks.org> + * Copyright 2009 by Harald Welte <laforge@gnumonks.org>
+ * + *
@ -122,7 +122,7 @@ Index: epan/dissectors/packet-abis_ip.c
+}; +};
+ +
+static gint +static gint
+dissect_ipa_attr(tvbuff_t *tvb, int base_offs, packet_info *pinfo, proto_tree *tree) +dissect_ipa_attr(tvbuff_t *tvb, int base_offs, proto_tree *tree)
+{ +{
+ guint8 len, tag, attr_type; + guint8 len, tag, attr_type;
+ +
@ -173,7 +173,7 @@ Index: epan/dissectors/packet-abis_ip.c
+ switch (msg_type) { + switch (msg_type) {
+ case 4: + case 4:
+ case 5: + case 5:
+ dissect_ipa_attr(tvb, 1, pinfo, ipaccess_tree); + dissect_ipa_attr(tvb, 1, ipaccess_tree);
+ break; + break;
+ } + }
+ } + }
@ -242,7 +242,7 @@ Index: epan/dissectors/packet-abis_ip.c
+ } + }
+} +}
+ +
+void proto_register_abisip(void) +void proto_register_abis_ip(void)
+{ +{
+ static hf_register_info hf[] = { + static hf_register_info hf[] = {
+ {&hf_abisip_data_len, + {&hf_abisip_data_len,
@ -260,7 +260,7 @@ Index: epan/dissectors/packet-abis_ip.c
+ {&hf_ipaccess_msgtype, + {&hf_ipaccess_msgtype,
+ {"MessageType", "ipaccess.msg_type", + {"MessageType", "ipaccess.msg_type",
+ FT_UINT8, BASE_HEX, VALS(ipaccess_msgtype_vals), 0x0, + FT_UINT8, BASE_HEX, VALS(ipaccess_msgtype_vals), 0x0,
+ "type of ip.access messsage", HFILL} + "Type of ip.access messsage", HFILL}
+ }, + },
+ {&hf_ipaccess_attr_tag, + {&hf_ipaccess_attr_tag,
+ {"Tag", "ipaccess.attr_tag", + {"Tag", "ipaccess.attr_tag",
@ -280,10 +280,10 @@ Index: epan/dissectors/packet-abis_ip.c
+ }; + };
+ +
+ proto_abisip = + proto_abisip =
+ proto_register_protocol("A-bis/IP protocol as used by ip.access", + proto_register_protocol("GSM A-bis/IP protocol as used by ip.access",
+ "A-bis/IP", "abis_ip"); + "GSM A-bis/IP", "gsm_abis_ip");
+ proto_ipaccess = + proto_ipaccess =
+ proto_register_protocol("A-bis/IP ip.access sub-protocol", + proto_register_protocol("GSM A-bis/IP ip.access CCM sub-protocol",
+ "IPA", "ipaccess"); + "IPA", "ipaccess");
+ +
+ proto_register_field_array(proto_abisip, hf, array_length(hf)); + proto_register_field_array(proto_abisip, hf, array_length(hf));
@ -293,7 +293,7 @@ Index: epan/dissectors/packet-abis_ip.c
+ register_dissector("gsm_abis_ip", dissect_abisip, proto_abisip); + register_dissector("gsm_abis_ip", dissect_abisip, proto_abisip);
+} +}
+ +
+void proto_reg_handoff_abisip(void) +void proto_reg_handoff_gsm_abis_ip(void)
+{ +{
+ dissector_handle_t abisip_handle; + dissector_handle_t abisip_handle;
+ +

View File

@ -1,14 +1,14 @@
Index: wireshark/epan/dissectors/packet-rsl.c Index: wireshark/epan/dissectors/packet-rsl.c
=================================================================== ===================================================================
--- wireshark.orig/epan/dissectors/packet-rsl.c 2009-02-28 15:39:56.000000000 +0100 --- wireshark.orig/epan/dissectors/packet-rsl.c 2009-07-03 22:20:16.000000000 +0200
+++ wireshark/epan/dissectors/packet-rsl.c 2009-06-26 15:51:00.000000000 +0200 +++ wireshark/epan/dissectors/packet-rsl.c 2009-07-04 04:06:04.000000000 +0200
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
* Routines for Radio Signalling Link (RSL) dissection. * Routines for Radio Signalling Link (RSL) dissection.
* *
* Copyright 2007, Anders Broman <anders.broman@ericsson.com> * Copyright 2007, Anders Broman <anders.broman@ericsson.com>
+ * Copyright 2009, Harald Welte <laforge@gnumonks.org> + * Copyright 2009, Harald Welte <laforge@gnumonks.org>
* *
* $Id: packet-rsl.c 27065 2008-12-20 00:09:02Z wmeier $ * $Id: packet-rsl.c 28770 2009-06-18 21:30:42Z stig $
* *
@@ -44,6 +45,8 @@ @@ -44,6 +45,8 @@
#include <epan/lapd_sapi.h> #include <epan/lapd_sapi.h>
@ -583,7 +583,7 @@ Index: wireshark/epan/dissectors/packet-rsl.c
+ src_addr.len = 4; + src_addr.len = 4;
+ src_addr.data = (guint8 *)&local_addr; + src_addr.data = (guint8 *)&local_addr;
+ rtp_add_address(pinfo, &src_addr, local_port, 0, + rtp_add_address(pinfo, &src_addr, local_port, 0,
+ "GSM A-bis/IP", pinfo->fd->num, 0); + "GSM A-bis/IP", pinfo->fd->num, 0, NULL);
+ rtcp_add_address(pinfo, &src_addr, local_port+1, 0, + rtcp_add_address(pinfo, &src_addr, local_port+1, 0,
+ "GSM A-bis/IP", pinfo->fd->num); + "GSM A-bis/IP", pinfo->fd->num);
+ break; + break;
@ -618,7 +618,7 @@ Index: wireshark/epan/dissectors/packet-rsl.c
@@ -3883,6 +4399,46 @@ @@ -3883,6 +4399,46 @@
FT_UINT8, BASE_DEC, VALS(rsl_emlpp_prio_vals), 0x03, FT_UINT8, BASE_DEC, VALS(rsl_emlpp_prio_vals), 0x03,
"eMLPP Priority", HFILL } NULL, HFILL }
}, },
+ { &hf_rsl_f4, + { &hf_rsl_f4,
+ { "unknown F4 IE", "rsl.ipacc.f4", + { "unknown F4 IE", "rsl.ipacc.f4",