aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2002-10-31 07:12:42 +0000
committerGuy Harris <guy@alum.mit.edu>2002-10-31 07:12:42 +0000
commit56f644145e0a4299a10099738fb74e1a08cd6fbd (patch)
tree7e11961398633886725fb3b33b3a254666a04af2 /epan
parent663bc2174e185804d1aa41c664a27ff6093a131d (diff)
Discard the WTAP_ENCAP_LAPD encapsulation type in favor of a
WTAP_ENCAP_ISDN encapsulation type, which includes a pseudo-header giving the direction (user-to-network or network-to-user) and the channel number. Add a new circuit type, using the ISDN channel number as the circuit ID. Add an ISDN dissector to put the direction and channel number into the protocol tree and to call the appropriate dissector for the payload based on the channel (LAPD for the D channel; V.120, PPP, or data for B channels, based on some heuristics). svn path=/trunk/; revision=6521
Diffstat (limited to 'epan')
-rw-r--r--epan/circuit.c11
-rw-r--r--epan/circuit.h3
-rw-r--r--epan/packet_info.h5
3 files changed, 13 insertions, 6 deletions
diff --git a/epan/circuit.c b/epan/circuit.c
index f4a180a813..3f8a192159 100644
--- a/epan/circuit.c
+++ b/epan/circuit.c
@@ -1,7 +1,7 @@
/* circuit.c
* Routines for building lists of packets that are part of a "circuit"
*
- * $Id: circuit.c,v 1.2 2002/10/29 07:22:55 guy Exp $
+ * $Id: circuit.c,v 1.3 2002/10/31 07:12:38 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -235,12 +235,17 @@ circuit_delete_proto_data(circuit_t *conv, int proto)
}
void
-circuit_set_dissector(circuit_t *circuit,
- dissector_handle_t handle)
+circuit_set_dissector(circuit_t *circuit, dissector_handle_t handle)
{
circuit->dissector_handle = handle;
}
+dissector_handle_t
+circuit_get_dissector(circuit_t *circuit)
+{
+ return circuit->dissector_handle;
+}
+
/*
* Given a circuit type and ID for a packet, search for a matching
* circuit and, if found and it has a circuit dissector,
diff --git a/epan/circuit.h b/epan/circuit.h
index 87a04eceac..0aa2e8c0ec 100644
--- a/epan/circuit.h
+++ b/epan/circuit.h
@@ -1,7 +1,7 @@
/* circuit.h
* Routines for building lists of packets that are part of a "circuit"
*
- * $Id: circuit.h,v 1.1 2002/10/22 08:43:44 guy Exp $
+ * $Id: circuit.h,v 1.2 2002/10/31 07:12:38 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -58,6 +58,7 @@ extern void circuit_delete_proto_data(circuit_t *conv, int proto);
extern void circuit_set_dissector(circuit_t *circuit,
dissector_handle_t handle);
+extern dissector_handle_t circuit_get_dissector(circuit_t *circuit);
extern gboolean
try_circuit_dissector(circuit_type ctype, guint32 circuit_id, tvbuff_t *tvb,
packet_info *pinfo, proto_tree *tree);
diff --git a/epan/packet_info.h b/epan/packet_info.h
index 50c62155b0..2bb6c9654b 100644
--- a/epan/packet_info.h
+++ b/epan/packet_info.h
@@ -1,7 +1,7 @@
/* packet_info.h
* Definitions for packet info structures and routines
*
- * $Id: packet_info.h,v 1.23 2002/10/22 08:22:07 guy Exp $
+ * $Id: packet_info.h,v 1.24 2002/10/31 07:12:38 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -102,7 +102,8 @@ typedef enum {
/* Types of circuit IDs Ethereal knows about. */
typedef enum {
CT_NONE, /* no port number */
- CT_DLCI /* Frame Relay DLCI */
+ CT_DLCI, /* Frame Relay DLCI */
+ CT_ISDN /* ISDN channel number */
/* Could also have X.25 logical channel and ATM VPI/VCI pairs */
} circuit_type;