diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2011-01-11 16:33:52 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2011-01-11 16:33:52 +0100 |
commit | 9b5f1d7b4399932ac83c0f1f14b192a25db8cf53 (patch) | |
tree | 41a1c6a6c06bd198769a268d0d0784120d99aa16 /wireshark | |
parent | 3b0fd2b0b9e689fd96eaf9b5d58d9c655d050a89 (diff) |
wireshark: rebase the patches, rename and add a README
Add a short README mentioning the svn version they apply
to, how to rebase them in the future, and what they do.
The renaming is done to add a hint on in which order to
apply them. The abis_oml patch has been updated to some
value_string changes in epan, all patches now add the new
files to the CMakeLists.txt of epan as well.
Diffstat (limited to 'wireshark')
-rw-r--r-- | wireshark/0001-abis_oml.patch (renamed from wireshark/abis_oml.patch) | 67 | ||||
-rw-r--r-- | wireshark/0002-ericsson_rbs2409.patch (renamed from wireshark/ericsson_rbs2409.patch) | 809 | ||||
-rw-r--r-- | wireshark/0003-lucent-hnb.patch (renamed from wireshark/lucent-hnb.patch) | 59 | ||||
-rw-r--r-- | wireshark/0004-rsl-ipaccess.patch (renamed from wireshark/rsl-ipaccess.patch) | 45 | ||||
-rw-r--r-- | wireshark/README | 19 |
5 files changed, 551 insertions, 448 deletions
diff --git a/wireshark/abis_oml.patch b/wireshark/0001-abis_oml.patch index ab51a1259..2d5b5d45a 100644 --- a/wireshark/abis_oml.patch +++ b/wireshark/0001-abis_oml.patch @@ -1,32 +1,47 @@ -From b659280ff645354bb55529b05114419b9f0efd6f Mon Sep 17 00:00:00 2001 +From c6c10dab54b9a667308004ab5c72dd08f52e4fc1 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther <zecke@selfish.org> -Date: Mon, 19 Apr 2010 13:23:51 +0800 -Subject: [PATCH 1/2] Add the Abis OML patch. +Date: Tue, 11 Jan 2011 15:08:42 +0100 +Subject: [PATCH 1/4] abis_oml +Add the GSM ABIS OML dissector from OpenBSC --- + epan/CMakeLists.txt | 1 + epan/dissectors/Makefile.common | 1 + - epan/dissectors/packet-gsm_abis_oml.c | 1405 +++++++++++++++++++++++++++++++++ - epan/dissectors/packet-gsm_abis_oml.h | 800 +++++++++++++++++++ - 3 files changed, 2206 insertions(+), 0 deletions(-) + epan/dissectors/packet-gsm_abis_oml.c | 1608 +++++++++++++++++++++++++++++++++ + epan/dissectors/packet-gsm_abis_oml.h | 830 +++++++++++++++++ + 4 files changed, 2440 insertions(+), 0 deletions(-) create mode 100644 epan/dissectors/packet-gsm_abis_oml.c create mode 100644 epan/dissectors/packet-gsm_abis_oml.h -Index: wireshark/epan/dissectors/Makefile.common -=================================================================== ---- wireshark.orig/epan/dissectors/Makefile.common -+++ wireshark/epan/dissectors/Makefile.common -@@ -495,6 +495,7 @@ +diff --git a/epan/CMakeLists.txt b/epan/CMakeLists.txt +index a22406c..0b09335 100644 +--- a/epan/CMakeLists.txt ++++ b/epan/CMakeLists.txt +@@ -586,6 +586,7 @@ set(DISSECTOR_SRC + dissectors/packet-gsm_a_gm.c + dissectors/packet-gsm_a_rp.c + dissectors/packet-gsm_a_rr.c ++ dissectors/packet-gsm_abis_oml.c + dissectors/packet-gsm_ipa.c + dissectors/packet-gsm_bsslap.c + dissectors/packet-gsm_bssmap_le.c +diff --git a/epan/dissectors/Makefile.common b/epan/dissectors/Makefile.common +index c496b36..7ce83b6 100644 +--- a/epan/dissectors/Makefile.common ++++ b/epan/dissectors/Makefile.common +@@ -496,6 +496,7 @@ DISSECTOR_SRC = \ packet-gsm_a_gm.c \ packet-gsm_a_rp.c \ packet-gsm_a_rr.c \ + packet-gsm_abis_oml.c \ - packet-gsm_ipa.c \ packet-gsm_bsslap.c \ packet-gsm_bssmap_le.c \ -Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c -=================================================================== + packet-gsm_ipa.c \ +diff --git a/epan/dissectors/packet-gsm_abis_oml.c b/epan/dissectors/packet-gsm_abis_oml.c +new file mode 100644 +index 0000000..f0b69e7 --- /dev/null -+++ wireshark/epan/dissectors/packet-gsm_abis_oml.c ++++ b/epan/dissectors/packet-gsm_abis_oml.c @@ -0,0 +1,1608 @@ +/* packet-abis_oml.c + * Routines for packet dissection of GSM A-bis over IP (3GPP TS 12.21) @@ -606,22 +621,22 @@ Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c +#endif + +static const gchar * -+_match_oml_fom_msgtype(const guint32 val, const value_string_ext *vs) ++_match_oml_fom_msgtype(const guint32 val, const value_string_ext *vs, gint *idx) +{ + const char *ret; -+ ret = match_strval(val, vs->_vs_p); ++ ret = match_strval_idx(val, vs->_vs_p, idx); + if (!ret) -+ ret = match_strval(val, _oml_fom_msgtype_vals); ++ ret = match_strval_idx(val, _oml_fom_msgtype_vals, idx); + return ret; +} + +static const gchar * -+_match_oml_fom_attr(const guint32 val, const value_string_ext *vs) ++_match_oml_fom_attr(const guint32 val, const value_string_ext *vs, gint *idx) +{ + const char *ret; -+ ret = match_strval(val, vs->_vs_p); ++ ret = match_strval_idx(val, vs->_vs_p, idx); + if (!ret) -+ ret = match_strval(val, _oml_fom_attr_vals); ++ ret = match_strval_idx(val, _oml_fom_attr_vals, idx); + return ret; +} + @@ -1636,10 +1651,11 @@ Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c + array_length(oml_fom_attr_vals_bs11)-1; + } +} -Index: wireshark/epan/dissectors/packet-gsm_abis_oml.h -=================================================================== +diff --git a/epan/dissectors/packet-gsm_abis_oml.h b/epan/dissectors/packet-gsm_abis_oml.h +new file mode 100644 +index 0000000..3cd2769 --- /dev/null -+++ wireshark/epan/dissectors/packet-gsm_abis_oml.h ++++ b/epan/dissectors/packet-gsm_abis_oml.h @@ -0,0 +1,830 @@ +/* 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 */ @@ -2471,3 +2487,6 @@ Index: wireshark/epan/dissectors/packet-gsm_abis_oml.h +}; + +#endif /* _NM_H */ +-- +1.7.3.4 + diff --git a/wireshark/ericsson_rbs2409.patch b/wireshark/0002-ericsson_rbs2409.patch index e8cdb8698..b13e4163c 100644 --- a/wireshark/ericsson_rbs2409.patch +++ b/wireshark/0002-ericsson_rbs2409.patch @@ -1,8 +1,38 @@ -Index: wireshark/epan/dissectors/Makefile.common -=================================================================== ---- wireshark.orig/epan/dissectors/Makefile.common -+++ wireshark/epan/dissectors/Makefile.common -@@ -67,6 +67,8 @@ +From 6254ee454147eab6f6a51792544716472e20073f Mon Sep 17 00:00:00 2001 +From: Holger Hans Peter Freyther <zecke@selfish.org> +Date: Tue, 11 Jan 2011 15:09:18 +0100 +Subject: [PATCH 2/4] ericsson_rbs2409 + +Add Ericsson RBS2409 dissector +--- + epan/CMakeLists.txt | 2 + + epan/dissectors/Makefile.common | 2 + + epan/dissectors/packet-ehdlc.c | 319 +++++++ + epan/dissectors/packet-gsm_abis_om2000.c | 1439 ++++++++++++++++++++++++++++++ + epan/dissectors/packet-gsm_abis_oml.c | 21 + + epan/dissectors/packet-l2tp.c | 7 + + 6 files changed, 1790 insertions(+), 0 deletions(-) + create mode 100644 epan/dissectors/packet-ehdlc.c + create mode 100644 epan/dissectors/packet-gsm_abis_om2000.c + +diff --git a/epan/CMakeLists.txt b/epan/CMakeLists.txt +index 0b09335..9217ec0 100644 +--- a/epan/CMakeLists.txt ++++ b/epan/CMakeLists.txt +@@ -184,6 +184,8 @@ set(DIRTY_PIDL_DISSECTOR_SRC + dissectors/packet-dcerpc-eventlog.c + dissectors/packet-dcerpc-lsa.c + dissectors/packet-dcerpc-winreg.c ++ dissectors/packet-ehdlc.c ++ dissectors/packet-gsm_abis_om2000.c + ) + set(ASN1_DISSECTOR_SRC + dissectors/packet-acp133.c +diff --git a/epan/dissectors/Makefile.common b/epan/dissectors/Makefile.common +index 7ce83b6..4c7094b 100644 +--- a/epan/dissectors/Makefile.common ++++ b/epan/dissectors/Makefile.common +@@ -67,6 +67,8 @@ DIRTY_PIDL_DISSECTOR_SRC = \ packet-dcerpc-dnsserver.c \ packet-dcerpc-eventlog.c \ packet-dcerpc-lsa.c \ @@ -11,55 +41,336 @@ Index: wireshark/epan/dissectors/Makefile.common packet-dcerpc-winreg.c # -Index: wireshark/epan/dissectors/packet-l2tp.c -=================================================================== ---- wireshark.orig/epan/dissectors/packet-l2tp.c -+++ wireshark/epan/dissectors/packet-l2tp.c -@@ -148,6 +148,7 @@ - #define L2TPv3_PROTOCOL_AAL5 6 - #define L2TPv3_PROTOCOL_LAPD 7 - #define L2TPv3_PROTOCOL_DOCSIS_DMPT 8 -+#define L2TPv3_PROTOCOL_ERICSSON 9 - - static enum_val_t l2tpv3_protocols[] = { - {"eth", "Ethernet", L2TPv3_PROTOCOL_ETH}, -@@ -159,6 +160,7 @@ - {"aal5", "AAL5", L2TPv3_PROTOCOL_AAL5}, - {"lapd", "LAPD", L2TPv3_PROTOCOL_LAPD}, - {"docsis-dmpt", "DOCSIS-DMPT", L2TPv3_PROTOCOL_DOCSIS_DMPT}, -+ {"ehdlc", "Ericsson HDLC", L2TPv3_PROTOCOL_ERICSSON}, - {NULL, NULL, 0} - }; - -@@ -583,6 +585,7 @@ - static dissector_handle_t llc_handle; - static dissector_handle_t lapd_handle; - static dissector_handle_t mp2t_handle; -+static dissector_handle_t ehdlc_handle; - static dissector_handle_t data_handle; - - /* -@@ -1498,6 +1501,9 @@ - case L2TPv3_PROTOCOL_LAPD: - call_dissector(lapd_handle, next_tvb, pinfo, tree); - break; -+ case L2TPv3_PROTOCOL_ERICSSON: -+ call_dissector(ehdlc_handle, next_tvb, pinfo, tree); -+ break; - default: - call_dissector(data_handle, next_tvb, pinfo, tree); - break; -@@ -2171,5 +2177,6 @@ - llc_handle = find_dissector("llc"); - lapd_handle = find_dissector("lapd"); - mp2t_handle = find_dissector("mp2t"); -+ ehdlc_handle = find_dissector("ehdlc"); - data_handle = find_dissector("data"); - } -Index: wireshark/epan/dissectors/packet-gsm_abis_om2000.c -=================================================================== +diff --git a/epan/dissectors/packet-ehdlc.c b/epan/dissectors/packet-ehdlc.c +new file mode 100644 +index 0000000..40bb3ab +--- /dev/null ++++ b/epan/dissectors/packet-ehdlc.c +@@ -0,0 +1,319 @@ ++/* packet-ehdlc.c ++ * Routines for packet dissection of Ericsson HDLC as used in A-bis over IP ++ * Copyright 2010 by Harald Welte <laforge@gnumonks.org> ++ * ++ * $Id: packet-ehdlc.c 33767 2010-08-11 11:59:47Z etxrab $ ++ * ++ * Wireshark - Network traffic analyzer ++ * By Gerald Combs <gerald@wireshark.org> ++ * Copyright 1998 Gerald Combs ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2 ++ * of the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ */ ++ ++#ifdef HAVE_CONFIG_H ++# include "config.h" ++#endif ++ ++#include <glib.h> ++ ++#include <epan/packet.h> ++#include <epan/ipproto.h> ++#include <epan/xdlc.h> ++ ++/* Initialize the protocol and registered fields */ ++static int proto_ehdlc = -1; ++ ++static int hf_ehdlc_data_len = -1; ++static int hf_ehdlc_protocol = -1; ++static int hf_ehdlc_sapi = -1; ++static int hf_ehdlc_c_r = -1; ++ ++static int hf_ehdlc_xid_payload = -1; ++static int hf_ehdlc_control = -1; ++ ++static int hf_ehdlc_p = -1; ++static int hf_ehdlc_f = -1; ++static int hf_ehdlc_u_modifier_cmd = -1; ++static int hf_ehdlc_u_modifier_resp = -1; ++static int hf_ehdlc_ftype_s_u = -1; ++ ++static int hf_ehdlc_n_r = -1; ++static int hf_ehdlc_n_s = -1; ++static int hf_ehdlc_p_ext = -1; ++static int hf_ehdlc_f_ext = -1; ++static int hf_ehdlc_s_ftype = -1; ++static int hf_ehdlc_ftype_i = -1; ++static int hf_ehdlc_ftype_s_u_ext = -1; ++ ++/* Used only for U frames */ ++static const xdlc_cf_items ehdlc_cf_items = { ++ NULL, ++ NULL, ++ &hf_ehdlc_p, ++ &hf_ehdlc_f, ++ NULL, ++ &hf_ehdlc_u_modifier_cmd, ++ &hf_ehdlc_u_modifier_resp, ++ NULL, ++ &hf_ehdlc_ftype_s_u ++}; ++ ++/* Used only for I and S frames */ ++static const xdlc_cf_items ehdlc_cf_items_ext = { ++ &hf_ehdlc_n_r, ++ &hf_ehdlc_n_s, ++ &hf_ehdlc_p_ext, ++ &hf_ehdlc_f_ext, ++ &hf_ehdlc_s_ftype, ++ NULL, ++ NULL, ++ &hf_ehdlc_ftype_i, ++ &hf_ehdlc_ftype_s_u_ext, ++}; ++ ++/* Initialize the subtree pointers */ ++static gint ett_ehdlc = -1; ++static gint ett_ehdlc_control = -1; ++ ++static const value_string ehdlc_protocol_vals[] = { ++ { 0x20, "RSL" }, ++ { 0xa0, "ACK" }, ++ { 0xc0, "OML" }, ++ { 0, NULL } ++}; ++ ++enum { ++ SUB_RSL, ++ SUB_OML, ++ SUB_DATA, ++ ++ SUB_MAX ++}; ++ ++static dissector_handle_t sub_handles[SUB_MAX]; ++ ++/* Code to actually dissect the packets */ ++static void ++dissect_ehdlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) ++{ ++ gint remaining; ++ int offset = 4; ++ ++ col_set_str(pinfo->cinfo, COL_PROTOCOL, "EHDLC"); ++ col_clear(pinfo->cinfo, COL_INFO); ++ ++ while ((remaining = tvb_reported_length_remaining(tvb, offset)) > 0) { ++ proto_item *ti = NULL; ++ proto_tree *ehdlc_tree = NULL; ++ guint16 len, msg_type; ++ tvbuff_t *next_tvb; ++ guint16 control; ++ gboolean is_response = 0, is_extended = TRUE; ++ gint header_length = 2; /* Address + Length field */ ++ ++ msg_type = tvb_get_guint8(tvb, offset); ++ len = tvb_get_guint8(tvb, offset+1); ++#if 0 ++ col_append_fstr(pinfo->cinfo, COL_INFO, "%s ", ++ val_to_str(msg_type, ehdlc_protocol_vals, ++ "unknown 0x%02x")); ++#endif ++ if (tree) { ++ ti = proto_tree_add_protocol_format(tree, proto_ehdlc, ++ tvb, offset, len, ++ "Ericsson HDLC protocol, type: %s", ++ val_to_str(msg_type, ehdlc_protocol_vals, ++ "unknown 0x%02x")); ++ ehdlc_tree = proto_item_add_subtree(ti, ett_ehdlc); ++ proto_tree_add_item(ehdlc_tree, hf_ehdlc_protocol, ++ tvb, offset, 1, FALSE); ++#if 0 ++ proto_tree_add_item(ehdlc_tree, hf_ehdlc_sapi, ++ tvb, offset, 1, FALSE); ++ proto_tree_add_item(ehdlc_tree, hf_ehdlc_c_r, ++ tvb, offset, 1, FALSE); ++#endif ++ proto_tree_add_item(ehdlc_tree, hf_ehdlc_data_len, ++ tvb, offset+1, 1, FALSE); ++ } ++ ++ control = dissect_xdlc_control(tvb, offset+2, pinfo, ehdlc_tree, hf_ehdlc_control, ++ ett_ehdlc_control, &ehdlc_cf_items, &ehdlc_cf_items_ext, ++ NULL, NULL, is_response, is_extended, FALSE); ++ header_length += XDLC_CONTROL_LEN(control, is_extended); ++ ++ if (XDLC_IS_INFORMATION(control)) { ++ next_tvb = tvb_new_subset(tvb, offset+header_length, ++ len-header_length, len); ++ ++ switch (msg_type) { ++ case 0x20: ++ /* len == 4 seems to be some kind of ACK */ ++ if (len <= 4) ++ break; ++ call_dissector(sub_handles[SUB_RSL], next_tvb, pinfo, tree); ++ break; ++ case 0xbc: ++ case 0xdc: ++ case 0xa0: ++ case 0xc0: ++ /* len == 4 seems to be some kind of ACK */ ++ if (len <= 4) ++ break; ++ call_dissector(sub_handles[SUB_OML], next_tvb, pinfo, tree); ++ break; ++ default: ++ call_dissector(sub_handles[SUB_DATA], next_tvb, pinfo, tree); ++ break; ++ } ++ } else if (control == XDLC_U | XDLC_XID) { ++ /* XID is formatted like ISO 8885, typically we see ++ * something like ++ * 82 format identifier ++ * 80 group identifier ++ * 00 09 length ++ * 07 01 05 Window Size Tx ++ * 09 01 04 Ack Timer (msec) ++ * 08 01 05 Window Size Rx */ ++ proto_tree_add_item(ehdlc_tree, hf_ehdlc_xid_payload, ++ tvb, offset+header_length, ++ len-header_length, FALSE); ++ } ++ ++ offset += len; ++ } ++} ++ ++void proto_register_ehdlc(void) ++{ ++ static hf_register_info hf[] = { ++ { &hf_ehdlc_data_len, ++ { "DataLen", "ehdlc.data_len", ++ FT_UINT8, BASE_DEC, NULL, 0x0, ++ "The length of the data (in bytes)", HFILL } ++ }, ++ { &hf_ehdlc_protocol, ++ { "Protocol", "ehdlc.protocol", ++ FT_UINT8, BASE_HEX, VALS(ehdlc_protocol_vals), 0x0, ++ "The HDLC Sub-Protocol", HFILL } ++ }, ++ { &hf_ehdlc_sapi, ++ { "SAPI", "ehdlc.sapi", ++ FT_UINT8, BASE_DEC, NULL, 0x1f, ++ NULL, HFILL } ++ }, ++ { &hf_ehdlc_c_r, ++ { "C/R", "ehdlc.c_r", ++ FT_UINT8, BASE_HEX, NULL, 0x20, ++ NULL, HFILL } ++ }, ++ { &hf_ehdlc_xid_payload, ++ { "XID Payload", "ehdlc.xid_payload", ++ FT_BYTES, BASE_NONE, NULL, 0, ++ NULL, HFILL } ++ }, ++ { &hf_ehdlc_control, ++ { "Control Field", "ehdlc.control", ++ FT_UINT16, BASE_HEX, NULL, 0, ++ NULL, HFILL } ++ }, ++ { &hf_ehdlc_n_r, ++ { "N(R)", "ehdlc.control.n_r", ++ FT_UINT16, BASE_DEC, NULL, XDLC_N_R_EXT_MASK, ++ NULL, HFILL } ++ }, ++ { &hf_ehdlc_n_s, ++ { "N(S)", "ehdlc.control.n_s", ++ FT_UINT16, BASE_DEC, NULL, XDLC_N_S_EXT_MASK, ++ NULL, HFILL } ++ }, ++ { &hf_ehdlc_p, ++ { "Poll", "ehdlc.control.p", ++ FT_BOOLEAN, 8, TFS(&tfs_set_notset), XDLC_P_F, ++ NULL, HFILL } ++ }, ++ { &hf_ehdlc_p_ext, ++ { "Poll", "ehdlc.control.p", ++ FT_BOOLEAN, 16, TFS(&tfs_set_notset), XDLC_P_F_EXT, ++ NULL, HFILL } ++ }, ++ { &hf_ehdlc_f, ++ { "Final", "ehdlc.control.f", ++ FT_BOOLEAN, 8, TFS(&tfs_set_notset), XDLC_P_F, ++ NULL, HFILL } ++ }, ++ { &hf_ehdlc_f_ext, ++ { "Final", "ehdlc.control.f", ++ FT_BOOLEAN, 16, TFS(&tfs_set_notset), XDLC_P_F_EXT, ++ NULL, HFILL } ++ }, ++ { &hf_ehdlc_s_ftype, ++ { "Supervisory frame type", "ehdlc.control.s_ftype", ++ FT_UINT16, BASE_HEX, VALS(stype_vals), XDLC_S_FTYPE_MASK, ++ NULL, HFILL } ++ }, ++ { &hf_ehdlc_u_modifier_cmd, ++ { "Command", "ehdlc.control.u_modifier_cmd", ++ FT_UINT8, BASE_HEX, VALS(modifier_vals_cmd), XDLC_U_MODIFIER_MASK, ++ NULL, HFILL } ++ }, ++ { &hf_ehdlc_u_modifier_resp, ++ { "Response", "ehdlc.control.u_modifier_resp", ++ FT_UINT8, BASE_HEX, VALS(modifier_vals_resp), XDLC_U_MODIFIER_MASK, ++ NULL, HFILL } ++ }, ++ { &hf_ehdlc_ftype_i, ++ { "Frame Type", "ehdlc.control.ftype", ++ FT_UINT16, BASE_HEX, VALS(ftype_vals), XDLC_I_MASK, ++ NULL, HFILL } ++ }, ++ { &hf_ehdlc_ftype_s_u, ++ { "Frame Type", "ehdlc.control.ftype", ++ FT_UINT8, BASE_HEX, VALS(ftype_vals), XDLC_S_U_MASK, ++ NULL, HFILL } ++ }, ++ { &hf_ehdlc_ftype_s_u_ext, ++ { "Frame Type", "ehdlc.control.ftype", ++ FT_UINT16, BASE_HEX, VALS(ftype_vals), XDLC_S_U_MASK, ++ NULL, HFILL } ++ }, ++ }; ++ ++ static gint *ett[] = { ++ &ett_ehdlc, ++ &ett_ehdlc_control, ++ }; ++ ++ proto_ehdlc = ++ proto_register_protocol("Ericsson HDLC", ++ "Ericsson HDLC as used in A-bis over IP", "ehdlc"); ++ ++ proto_register_field_array(proto_ehdlc, hf, array_length(hf)); ++ proto_register_subtree_array(ett, array_length(ett)); ++ ++ register_dissector("ehdlc", dissect_ehdlc, proto_ehdlc); ++} ++ ++void proto_reg_handoff_ehdlc(void) ++{ ++ dissector_handle_t ehdlc_handle; ++ ++ sub_handles[SUB_RSL] = find_dissector("gsm_abis_rsl"); ++ sub_handles[SUB_OML] = find_dissector("gsm_abis_oml"); ++ sub_handles[SUB_DATA] = find_dissector("data"); ++ ++ ehdlc_handle = create_dissector_handle(dissect_ehdlc, proto_ehdlc); ++} +diff --git a/epan/dissectors/packet-gsm_abis_om2000.c b/epan/dissectors/packet-gsm_abis_om2000.c +new file mode 100644 +index 0000000..bf67aea --- /dev/null -+++ wireshark/epan/dissectors/packet-gsm_abis_om2000.c ++++ b/epan/dissectors/packet-gsm_abis_om2000.c @@ -0,0 +1,1439 @@ +/* packet-abis_om2000.c + * Routines for packet dissection of Ericsson A-bis OML (OM 2000) @@ -1500,11 +1811,11 @@ Index: wireshark/epan/dissectors/packet-gsm_abis_om2000.c + /* preferences have been changed */ + } +} -Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c -=================================================================== ---- wireshark.orig/epan/dissectors/packet-gsm_abis_oml.c -+++ wireshark/epan/dissectors/packet-gsm_abis_oml.c -@@ -119,9 +119,12 @@ +diff --git a/epan/dissectors/packet-gsm_abis_oml.c b/epan/dissectors/packet-gsm_abis_oml.c +index f0b69e7..46a9fad 100644 +--- a/epan/dissectors/packet-gsm_abis_oml.c ++++ b/epan/dissectors/packet-gsm_abis_oml.c +@@ -119,9 +119,12 @@ static int ett_oml_fom_att = -1; /* Decode things as nanoBTS traces */ static gboolean global_oml_use_nano_bts = TRUE; @@ -1517,7 +1828,7 @@ Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c /* TS 12.21 Chapter 8.1 / TS 08.59 */ static const value_string oml_msg_disc_vals[] = { { ABIS_OM_MDISC_FOM, "Formatted O&M" }, -@@ -1196,6 +1199,7 @@ +@@ -1196,6 +1199,7 @@ dissect_abis_oml(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) top_tree = tree; if (tree) { u_int8_t msg_disc = tvb_get_guint8(tvb, offset); @@ -1525,7 +1836,7 @@ Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c ti = proto_tree_add_item(tree, proto_abis_oml, tvb, 0, -1, FALSE); oml_tree = proto_item_add_subtree(ti, ett_oml); -@@ -1209,6 +1213,14 @@ +@@ -1209,6 +1213,14 @@ dissect_abis_oml(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_tree_add_item(oml_tree, hf_oml_length, tvb, offset++, 1, TRUE); @@ -1540,7 +1851,7 @@ Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c switch (msg_disc) { case ABIS_OM_MDISC_FOM: offset = dissect_oml_fom(tvb, pinfo, oml_tree, -@@ -1222,6 +1234,8 @@ +@@ -1222,6 +1234,8 @@ dissect_abis_oml(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) default: break; } @@ -1549,7 +1860,7 @@ Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c } } -@@ -1569,6 +1583,11 @@ +@@ -1569,6 +1583,11 @@ proto_register_abis_oml(void) "Use nanoBTS definitions", "Use ipaccess nanoBTS specific definitions for OML", &global_oml_use_nano_bts); @@ -1561,334 +1872,58 @@ Index: wireshark/epan/dissectors/packet-gsm_abis_oml.c } /* This function is called once at startup and every time the user hits -@@ -1605,4 +1624,6 @@ +@@ -1605,4 +1624,6 @@ proto_reg_handoff_abis_oml(void) oml_fom_attr_vse._vs_num_entries = array_length(oml_fom_attr_vals_bs11)-1; } + + sub_om2000 = find_dissector("gsm_abis_om2000"); } -Index: wireshark/epan/dissectors/packet-ehdlc.c -=================================================================== ---- /dev/null -+++ wireshark/epan/dissectors/packet-ehdlc.c -@@ -0,0 +1,319 @@ -+/* packet-ehdlc.c -+ * Routines for packet dissection of Ericsson HDLC as used in A-bis over IP -+ * Copyright 2010 by Harald Welte <laforge@gnumonks.org> -+ * -+ * $Id: packet-ehdlc.c 33767 2010-08-11 11:59:47Z etxrab $ -+ * -+ * Wireshark - Network traffic analyzer -+ * By Gerald Combs <gerald@wireshark.org> -+ * Copyright 1998 Gerald Combs -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2 -+ * of the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ */ -+ -+#ifdef HAVE_CONFIG_H -+# include "config.h" -+#endif -+ -+#include <glib.h> -+ -+#include <epan/packet.h> -+#include <epan/ipproto.h> -+#include <epan/xdlc.h> -+ -+/* Initialize the protocol and registered fields */ -+static int proto_ehdlc = -1; -+ -+static int hf_ehdlc_data_len = -1; -+static int hf_ehdlc_protocol = -1; -+static int hf_ehdlc_sapi = -1; -+static int hf_ehdlc_c_r = -1; -+ -+static int hf_ehdlc_xid_payload = -1; -+static int hf_ehdlc_control = -1; -+ -+static int hf_ehdlc_p = -1; -+static int hf_ehdlc_f = -1; -+static int hf_ehdlc_u_modifier_cmd = -1; -+static int hf_ehdlc_u_modifier_resp = -1; -+static int hf_ehdlc_ftype_s_u = -1; -+ -+static int hf_ehdlc_n_r = -1; -+static int hf_ehdlc_n_s = -1; -+static int hf_ehdlc_p_ext = -1; -+static int hf_ehdlc_f_ext = -1; -+static int hf_ehdlc_s_ftype = -1; -+static int hf_ehdlc_ftype_i = -1; -+static int hf_ehdlc_ftype_s_u_ext = -1; -+ -+/* Used only for U frames */ -+static const xdlc_cf_items ehdlc_cf_items = { -+ NULL, -+ NULL, -+ &hf_ehdlc_p, -+ &hf_ehdlc_f, -+ NULL, -+ &hf_ehdlc_u_modifier_cmd, -+ &hf_ehdlc_u_modifier_resp, -+ NULL, -+ &hf_ehdlc_ftype_s_u -+}; -+ -+/* Used only for I and S frames */ -+static const xdlc_cf_items ehdlc_cf_items_ext = { -+ &hf_ehdlc_n_r, -+ &hf_ehdlc_n_s, -+ &hf_ehdlc_p_ext, -+ &hf_ehdlc_f_ext, -+ &hf_ehdlc_s_ftype, -+ NULL, -+ NULL, -+ &hf_ehdlc_ftype_i, -+ &hf_ehdlc_ftype_s_u_ext, -+}; -+ -+/* Initialize the subtree pointers */ -+static gint ett_ehdlc = -1; -+static gint ett_ehdlc_control = -1; -+ -+static const value_string ehdlc_protocol_vals[] = { -+ { 0x20, "RSL" }, -+ { 0xa0, "ACK" }, -+ { 0xc0, "OML" }, -+ { 0, NULL } -+}; -+ -+enum { -+ SUB_RSL, -+ SUB_OML, -+ SUB_DATA, -+ -+ SUB_MAX -+}; -+ -+static dissector_handle_t sub_handles[SUB_MAX]; -+ -+/* Code to actually dissect the packets */ -+static void -+dissect_ehdlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) -+{ -+ gint remaining; -+ int offset = 4; -+ -+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "EHDLC"); -+ col_clear(pinfo->cinfo, COL_INFO); -+ -+ while ((remaining = tvb_reported_length_remaining(tvb, offset)) > 0) { -+ proto_item *ti = NULL; -+ proto_tree *ehdlc_tree = NULL; -+ guint16 len, msg_type; -+ tvbuff_t *next_tvb; -+ guint16 control; -+ gboolean is_response = 0, is_extended = TRUE; -+ gint header_length = 2; /* Address + Length field */ -+ -+ msg_type = tvb_get_guint8(tvb, offset); -+ len = tvb_get_guint8(tvb, offset+1); -+#if 0 -+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s ", -+ val_to_str(msg_type, ehdlc_protocol_vals, -+ "unknown 0x%02x")); -+#endif -+ if (tree) { -+ ti = proto_tree_add_protocol_format(tree, proto_ehdlc, -+ tvb, offset, len, -+ "Ericsson HDLC protocol, type: %s", -+ val_to_str(msg_type, ehdlc_protocol_vals, -+ "unknown 0x%02x")); -+ ehdlc_tree = proto_item_add_subtree(ti, ett_ehdlc); -+ proto_tree_add_item(ehdlc_tree, hf_ehdlc_protocol, -+ tvb, offset, 1, FALSE); -+#if 0 -+ proto_tree_add_item(ehdlc_tree, hf_ehdlc_sapi, -+ tvb, offset, 1, FALSE); -+ proto_tree_add_item(ehdlc_tree, hf_ehdlc_c_r, -+ tvb, offset, 1, FALSE); -+#endif -+ proto_tree_add_item(ehdlc_tree, hf_ehdlc_data_len, -+ tvb, offset+1, 1, FALSE); -+ } -+ -+ control = dissect_xdlc_control(tvb, offset+2, pinfo, ehdlc_tree, hf_ehdlc_control, -+ ett_ehdlc_control, &ehdlc_cf_items, &ehdlc_cf_items_ext, -+ NULL, NULL, is_response, is_extended, FALSE); -+ header_length += XDLC_CONTROL_LEN(control, is_extended); -+ -+ if (XDLC_IS_INFORMATION(control)) { -+ next_tvb = tvb_new_subset(tvb, offset+header_length, -+ len-header_length, len); -+ -+ switch (msg_type) { -+ case 0x20: -+ /* len == 4 seems to be some kind of ACK */ -+ if (len <= 4) -+ break; -+ call_dissector(sub_handles[SUB_RSL], next_tvb, pinfo, tree); -+ break; -+ case 0xbc: -+ case 0xdc: -+ case 0xa0: -+ case 0xc0: -+ /* len == 4 seems to be some kind of ACK */ -+ if (len <= 4) -+ break; -+ call_dissector(sub_handles[SUB_OML], next_tvb, pinfo, tree); -+ break; -+ default: -+ call_dissector(sub_handles[SUB_DATA], next_tvb, pinfo, tree); -+ break; -+ } -+ } else if (control == XDLC_U | XDLC_XID) { -+ /* XID is formatted like ISO 8885, typically we see -+ * something like -+ * 82 format identifier -+ * 80 group identifier -+ * 00 09 length -+ * 07 01 05 Window Size Tx -+ * 09 01 04 Ack Timer (msec) -+ * 08 01 05 Window Size Rx */ -+ proto_tree_add_item(ehdlc_tree, hf_ehdlc_xid_payload, -+ tvb, offset+header_length, -+ len-header_length, FALSE); -+ } -+ -+ offset += len; -+ } -+} -+ -+void proto_register_ehdlc(void) -+{ -+ static hf_register_info hf[] = { -+ { &hf_ehdlc_data_len, -+ { "DataLen", "ehdlc.data_len", -+ FT_UINT8, BASE_DEC, NULL, 0x0, -+ "The length of the data (in bytes)", HFILL } -+ }, -+ { &hf_ehdlc_protocol, -+ { "Protocol", "ehdlc.protocol", -+ FT_UINT8, BASE_HEX, VALS(ehdlc_protocol_vals), 0x0, -+ "The HDLC Sub-Protocol", HFILL } -+ }, -+ { &hf_ehdlc_sapi, -+ { "SAPI", "ehdlc.sapi", -+ FT_UINT8, BASE_DEC, NULL, 0x1f, -+ NULL, HFILL } -+ }, -+ { &hf_ehdlc_c_r, -+ { "C/R", "ehdlc.c_r", -+ FT_UINT8, BASE_HEX, NULL, 0x20, -+ NULL, HFILL } -+ }, -+ { &hf_ehdlc_xid_payload, -+ { "XID Payload", "ehdlc.xid_payload", -+ FT_BYTES, BASE_NONE, NULL, 0, -+ NULL, HFILL } -+ }, -+ { &hf_ehdlc_control, -+ { "Control Field", "ehdlc.control", -+ FT_UINT16, BASE_HEX, NULL, 0, -+ NULL, HFILL } -+ }, -+ { &hf_ehdlc_n_r, -+ { "N(R)", "ehdlc.control.n_r", -+ FT_UINT16, BASE_DEC, NULL, XDLC_N_R_EXT_MASK, -+ NULL, HFILL } -+ }, -+ { &hf_ehdlc_n_s, -+ { "N(S)", "ehdlc.control.n_s", -+ FT_UINT16, BASE_DEC, NULL, XDLC_N_S_EXT_MASK, -+ NULL, HFILL } -+ }, -+ { &hf_ehdlc_p, -+ { "Poll", "ehdlc.control.p", -+ FT_BOOLEAN, 8, TFS(&tfs_set_notset), XDLC_P_F, -+ NULL, HFILL } -+ }, -+ { &hf_ehdlc_p_ext, -+ { "Poll", "ehdlc.control.p", -+ FT_BOOLEAN, 16, TFS(&tfs_set_notset), XDLC_P_F_EXT, -+ NULL, HFILL } -+ }, -+ { &hf_ehdlc_f, -+ { "Final", "ehdlc.control.f", -+ FT_BOOLEAN, 8, TFS(&tfs_set_notset), XDLC_P_F, -+ NULL, HFILL } -+ }, -+ { &hf_ehdlc_f_ext, -+ { "Final", "ehdlc.control.f", -+ FT_BOOLEAN, 16, TFS(&tfs_set_notset), XDLC_P_F_EXT, -+ NULL, HFILL } -+ }, -+ { &hf_ehdlc_s_ftype, -+ { "Supervisory frame type", "ehdlc.control.s_ftype", -+ FT_UINT16, BASE_HEX, VALS(stype_vals), XDLC_S_FTYPE_MASK, -+ NULL, HFILL } -+ }, -+ { &hf_ehdlc_u_modifier_cmd, -+ { "Command", "ehdlc.control.u_modifier_cmd", -+ FT_UINT8, BASE_HEX, VALS(modifier_vals_cmd), XDLC_U_MODIFIER_MASK, -+ NULL, HFILL } -+ }, -+ { &hf_ehdlc_u_modifier_resp, -+ { "Response", "ehdlc.control.u_modifier_resp", -+ FT_UINT8, BASE_HEX, VALS(modifier_vals_resp), XDLC_U_MODIFIER_MASK, -+ NULL, HFILL } -+ }, -+ { &hf_ehdlc_ftype_i, -+ { "Frame Type", "ehdlc.control.ftype", -+ FT_UINT16, BASE_HEX, VALS(ftype_vals), XDLC_I_MASK, -+ NULL, HFILL } -+ }, -+ { &hf_ehdlc_ftype_s_u, -+ { "Frame Type", "ehdlc.control.ftype", -+ FT_UINT8, BASE_HEX, VALS(ftype_vals), XDLC_S_U_MASK, -+ NULL, HFILL } -+ }, -+ { &hf_ehdlc_ftype_s_u_ext, -+ { "Frame Type", "ehdlc.control.ftype", -+ FT_UINT16, BASE_HEX, VALS(ftype_vals), XDLC_S_U_MASK, -+ NULL, HFILL } -+ }, -+ }; -+ -+ static gint *ett[] = { -+ &ett_ehdlc, -+ &ett_ehdlc_control, -+ }; -+ -+ proto_ehdlc = -+ proto_register_protocol("Ericsson HDLC", -+ "Ericsson HDLC as used in A-bis over IP", "ehdlc"); -+ -+ proto_register_field_array(proto_ehdlc, hf, array_length(hf)); -+ proto_register_subtree_array(ett, array_length(ett)); -+ -+ register_dissector("ehdlc", dissect_ehdlc, proto_ehdlc); -+} -+ -+void proto_reg_handoff_ehdlc(void) -+{ -+ dissector_handle_t ehdlc_handle; -+ -+ sub_handles[SUB_RSL] = find_dissector("gsm_abis_rsl"); -+ sub_handles[SUB_OML] = find_dissector("gsm_abis_oml"); -+ sub_handles[SUB_DATA] = find_dissector("data"); -+ -+ ehdlc_handle = create_dissector_handle(dissect_ehdlc, proto_ehdlc); -+} +diff --git a/epan/dissectors/packet-l2tp.c b/epan/dissectors/packet-l2tp.c +index 4380bbc..0ebcd9d 100644 +--- a/epan/dissectors/packet-l2tp.c ++++ b/epan/dissectors/packet-l2tp.c +@@ -148,6 +148,7 @@ static enum_val_t l2tpv3_cookies[] = { + #define L2TPv3_PROTOCOL_AAL5 6 + #define L2TPv3_PROTOCOL_LAPD 7 + #define L2TPv3_PROTOCOL_DOCSIS_DMPT 8 ++#define L2TPv3_PROTOCOL_ERICSSON 9 + + static enum_val_t l2tpv3_protocols[] = { + {"eth", "Ethernet", L2TPv3_PROTOCOL_ETH}, +@@ -159,6 +160,7 @@ static enum_val_t l2tpv3_protocols[] = { + {"aal5", "AAL5", L2TPv3_PROTOCOL_AAL5}, + {"lapd", "LAPD", L2TPv3_PROTOCOL_LAPD}, + {"docsis-dmpt", "DOCSIS-DMPT", L2TPv3_PROTOCOL_DOCSIS_DMPT}, ++ {"ehdlc", "Ericsson HDLC", L2TPv3_PROTOCOL_ERICSSON}, + {NULL, NULL, 0} + }; + +@@ -583,6 +585,7 @@ static dissector_handle_t atm_oam_handle; + static dissector_handle_t llc_handle; + static dissector_handle_t lapd_handle; + static dissector_handle_t mp2t_handle; ++static dissector_handle_t ehdlc_handle; + static dissector_handle_t data_handle; + + /* +@@ -1498,6 +1501,9 @@ process_l2tpv3_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, + case L2TPv3_PROTOCOL_LAPD: + call_dissector(lapd_handle, next_tvb, pinfo, tree); + break; ++ case L2TPv3_PROTOCOL_ERICSSON: ++ call_dissector(ehdlc_handle, next_tvb, pinfo, tree); ++ break; + default: + call_dissector(data_handle, next_tvb, pinfo, tree); + break; +@@ -2171,5 +2177,6 @@ proto_reg_handoff_l2tp(void) + llc_handle = find_dissector("llc"); + lapd_handle = find_dissector("lapd"); + mp2t_handle = find_dissector("mp2t"); ++ ehdlc_handle = find_dissector("ehdlc"); + data_handle = find_dissector("data"); + } +-- +1.7.3.4 + diff --git a/wireshark/lucent-hnb.patch b/wireshark/0003-lucent-hnb.patch index 4c85195ea..4957db71d 100644 --- a/wireshark/lucent-hnb.patch +++ b/wireshark/0003-lucent-hnb.patch @@ -1,7 +1,45 @@ -Index: wireshark/epan/dissectors/packet-lucent_hnb.c -=================================================================== +From 48f2a191de62686c2ffdb97e46b5cc6bb61a868d Mon Sep 17 00:00:00 2001 +From: Holger Hans Peter Freyther <zecke@selfish.org> +Date: Tue, 11 Jan 2011 15:16:19 +0100 +Subject: [PATCH 3/4] lucent-hnb + +Add lucent hnb patch from OpenBSC +--- + epan/CMakeLists.txt | 1 + + epan/dissectors/Makefile.common | 1 + + epan/dissectors/packet-lucent_hnb.c | 103 +++++++++++++++++++++++++++++++++++ + 3 files changed, 105 insertions(+), 0 deletions(-) + create mode 100644 epan/dissectors/packet-lucent_hnb.c + +diff --git a/epan/CMakeLists.txt b/epan/CMakeLists.txt +index 9217ec0..ac76ab9 100644 +--- a/epan/CMakeLists.txt ++++ b/epan/CMakeLists.txt +@@ -728,6 +728,7 @@ set(DISSECTOR_SRC + dissectors/packet-lpd.c + dissectors/packet-lsc.c + dissectors/packet-ltp.c ++ dissectors/packet-lucent_hnb.c + dissectors/packet-lwapp.c + dissectors/packet-lwres.c + dissectors/packet-m2pa.c +diff --git a/epan/dissectors/Makefile.common b/epan/dissectors/Makefile.common +index 4c7094b..9931f28 100644 +--- a/epan/dissectors/Makefile.common ++++ b/epan/dissectors/Makefile.common +@@ -638,6 +638,7 @@ DISSECTOR_SRC = \ + packet-lpd.c \ + packet-lsc.c \ + packet-ltp.c \ ++ packet-lucent_hnb.c \ + packet-lwapp.c \ + packet-lwres.c \ + packet-m2pa.c \ +diff --git a/epan/dissectors/packet-lucent_hnb.c b/epan/dissectors/packet-lucent_hnb.c +new file mode 100644 +index 0000000..296f98b --- /dev/null -+++ wireshark/epan/dissectors/packet-lucent_hnb.c ++++ b/epan/dissectors/packet-lucent_hnb.c @@ -0,0 +1,103 @@ +/* packet-lucent_hnb.c + * Routines for packet dissection of Alcatel/Lucent HomeNodeB @@ -106,15 +144,6 @@ Index: wireshark/epan/dissectors/packet-lucent_hnb.c + dissector_add("sctp.ppi", LHNB_SCTP_PPI_GMM, lhnb_handle); + dissector_add("sctp.port", LHNB_SCTP_PORT, lhnb_handle); +} -Index: wireshark/epan/dissectors/Makefile.common -=================================================================== ---- wireshark.orig/epan/dissectors/Makefile.common -+++ wireshark/epan/dissectors/Makefile.common -@@ -605,6 +605,7 @@ - packet-loop.c \ - packet-lpd.c \ - packet-lsc.c \ -+ packet-lucent_hnb.c \ - packet-lwapp.c \ - packet-lwres.c \ - packet-m2pa.c \ +-- +1.7.3.4 + diff --git a/wireshark/rsl-ipaccess.patch b/wireshark/0004-rsl-ipaccess.patch index 29220b87b..6f2b8c132 100644 --- a/wireshark/rsl-ipaccess.patch +++ b/wireshark/0004-rsl-ipaccess.patch @@ -1,14 +1,15 @@ -From 8f35d623641dbba90e6186604c11e892bf515ecc Mon Sep 17 00:00:00 2001 +From 54882db58b6ec12da6b80071e0ac2344d42df24c Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther <zecke@selfish.org> -Date: Mon, 19 Apr 2010 13:32:58 +0800 -Subject: [PATCH 2/2] RSL patch +Date: Tue, 11 Jan 2011 16:22:33 +0100 +Subject: [PATCH 4/4] rsl-ipaccess +Add vendor specific commands for RSL. --- epan/dissectors/packet-rsl.c | 522 +++++++++++++++++++++++++++++++++++++++++- 1 files changed, 515 insertions(+), 7 deletions(-) diff --git a/epan/dissectors/packet-rsl.c b/epan/dissectors/packet-rsl.c -index b10a671..a455cf3 100644 +index bf83f6f..d858e1a 100644 --- a/epan/dissectors/packet-rsl.c +++ b/epan/dissectors/packet-rsl.c @@ -2,6 +2,7 @@ @@ -28,7 +29,7 @@ index b10a671..a455cf3 100644 /* Initialize the protocol and registered fields */ static int proto_rsl = -1; -@@ -115,6 +118,24 @@ static int hf_rsl_emlpp_prio = -1; +@@ -116,6 +119,24 @@ static int hf_rsl_emlpp_prio = -1; static int hf_rsl_rtd = -1; static int hf_rsl_delay_ind = -1; static int hf_rsl_tfo = -1; @@ -53,7 +54,7 @@ index b10a671..a455cf3 100644 /* Initialize the subtree pointers */ static int ett_rsl = -1; -@@ -172,6 +193,15 @@ static int ett_ie_cause = -1; +@@ -173,6 +194,15 @@ static int ett_ie_cause = -1; static int ett_ie_meas_res_no = -1; static int ett_ie_message_id = -1; static int ett_ie_sys_info_type = -1; @@ -67,9 +68,9 @@ index b10a671..a455cf3 100644 +static int ett_ie_rtp_payload = -1; + - proto_tree *top_tree; - dissector_handle_t gsm_a_ccch_handle; -@@ -207,8 +237,11 @@ static const value_string rsl_msg_disc_vals[] = { + static proto_tree *top_tree; + static dissector_handle_t gsm_a_ccch_handle; +@@ -208,8 +238,11 @@ static const value_string rsl_msg_disc_vals[] = { { 0x06, "Common Channel Management messages" }, { 0x08, "TRX Management messages" }, { 0x16, "Location Services messages" }, @@ -81,7 +82,7 @@ index b10a671..a455cf3 100644 /* * 9.2 MESSAGE TYPE */ -@@ -275,6 +308,49 @@ static const value_string rsl_msg_disc_vals[] = { +@@ -276,6 +309,49 @@ static const value_string rsl_msg_disc_vals[] = { /* 0 1 - - - - - - Location Services messages: */ #define RSL_MSG_LOC_INF 65 /* 8.7.1 */ @@ -131,7 +132,7 @@ index b10a671..a455cf3 100644 static const value_string rsl_msg_type_vals[] = { /* 0 0 0 0 - - - - Radio Link Layer Management messages: */ -@@ -337,6 +413,26 @@ static const value_string rsl_msg_type_vals[] = { +@@ -338,6 +414,26 @@ static const value_string rsl_msg_type_vals[] = { { 0x3f, "TFO MODification REQuest" }, /* 8.4.31 */ /* 0 1 - - - - - - Location Services messages: */ { 0x41, "Location Information" }, /* 8.7.1 */ @@ -158,7 +159,7 @@ index b10a671..a455cf3 100644 { 0, NULL } }; -@@ -370,10 +466,10 @@ static const value_string rsl_msg_type_vals[] = { +@@ -371,10 +467,10 @@ static const value_string rsl_msg_type_vals[] = { #define RSL_IE_MESSAGE_ID 28 #define RSL_IE_SYS_INFO_TYPE 30 @@ -173,7 +174,7 @@ index b10a671..a455cf3 100644 #define RSL_IE_FULL_IMM_ASS_INF 35 #define RSL_IE_SMSCB_INF 36 #define RSL_IE_FULL_MS_TIMING_OFFSET 37 -@@ -476,6 +572,24 @@ static const value_string rsl_ie_type_vals[] = { +@@ -477,6 +573,24 @@ static const value_string rsl_ie_type_vals[] = { Not used */ @@ -198,7 +199,7 @@ index b10a671..a455cf3 100644 { 0, NULL } }; -@@ -512,6 +626,96 @@ static const value_string rsl_ch_no_Cbits_vals[] = { +@@ -513,6 +627,96 @@ static const value_string rsl_ch_no_Cbits_vals[] = { { 0, NULL } }; @@ -295,7 +296,7 @@ index b10a671..a455cf3 100644 /* 9.3.1 Channel number 9.3.1 M TV 2 */ static int dissect_rsl_ie_ch_no(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory) -@@ -2042,7 +2246,6 @@ dissect_rsl_ie_err_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int +@@ -2045,7 +2249,6 @@ dissect_rsl_ie_err_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int proto_item_set_len(ti, length+2); proto_tree_add_item(ie_tree, hf_rsl_ie_length, tvb, offset, 1, FALSE); @@ -303,7 +304,7 @@ index b10a671..a455cf3 100644 /* Received Message */ offset = dissct_rsl_msg(tvb, pinfo, ie_tree, offset); -@@ -2907,12 +3110,184 @@ dissect_rsl_ie_tfo_transp_cont(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree +@@ -2910,12 +3113,184 @@ dissect_rsl_ie_tfo_transp_cont(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree } static int @@ -489,7 +490,7 @@ index b10a671..a455cf3 100644 offset++; switch (msg_type){ -@@ -3480,6 +3855,18 @@ dissct_rsl_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset) +@@ -3483,6 +3858,18 @@ dissct_rsl_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset) /* LLP APDU 9.3.58 M LV 2-N */ offset = dissect_rsl_ie_llp_apdu(tvb, pinfo, tree, offset, TRUE); break; @@ -508,7 +509,7 @@ index b10a671..a455cf3 100644 default: break; } -@@ -3487,6 +3874,40 @@ dissct_rsl_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset) +@@ -3490,6 +3877,40 @@ dissct_rsl_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset) return offset; } @@ -549,7 +550,7 @@ index b10a671..a455cf3 100644 static void dissect_rsl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { -@@ -3514,7 +3935,6 @@ dissect_rsl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +@@ -3517,7 +3938,6 @@ dissect_rsl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) /* 9.1 Message discriminator */ proto_tree_add_item(rsl_tree, hf_rsl_msg_dsc, tvb, offset, 1, FALSE); proto_tree_add_item(rsl_tree, hf_rsl_T_bit, tvb, offset, 1, FALSE); @@ -557,7 +558,7 @@ index b10a671..a455cf3 100644 offset = dissct_rsl_msg(tvb, pinfo, rsl_tree, offset); -@@ -3884,6 +4304,86 @@ void proto_register_rsl(void) +@@ -3892,6 +4312,86 @@ void proto_register_rsl(void) FT_UINT8, BASE_DEC, VALS(rsl_emlpp_prio_vals), 0x03, NULL, HFILL } }, @@ -644,7 +645,7 @@ index b10a671..a455cf3 100644 }; static gint *ett[] = { &ett_rsl, -@@ -3941,6 +4441,14 @@ void proto_register_rsl(void) +@@ -3949,6 +4449,14 @@ void proto_register_rsl(void) &ett_ie_meas_res_no, &ett_ie_message_id, &ett_ie_sys_info_type, @@ -660,5 +661,5 @@ index b10a671..a455cf3 100644 /* Register the protocol name and description */ -- -1.7.0.1 +1.7.3.4 diff --git a/wireshark/README b/wireshark/README new file mode 100644 index 000000000..3a28fcf11 --- /dev/null +++ b/wireshark/README @@ -0,0 +1,19 @@ +These are patches to wireshark to add/enhance the GSM support. + +== Basic == +The patches apply to SVN revision r35476 and were created +using git format-patch. They can be either applied via the +patch command or using git am on a git clone of wireshark. + + +== Rebasing with git == +It is the easiest to checkout the above revision, apply the +patches and then use git rebase git-svn to get to the latest +svn version. + +== patches == +0001-abis_oml.patch Add support for Abis OML +0002-ericsson_rbs2409.patch Add support for Ericsson Abis over IP +0003-lucent-hnb.patch Add support for Lucent HomeNodeB +0004-rsl-ipaccess.patch Add IPaccess RSL extensions + |