aboutsummaryrefslogtreecommitdiffstats
path: root/epan/packet_info.h
diff options
context:
space:
mode:
authorEd Warnicke <hagbard@physics.rutgers.edu>2001-04-01 04:50:42 +0000
committerEd Warnicke <hagbard@physics.rutgers.edu>2001-04-01 04:50:42 +0000
commitdd54ba9396d289500c8911457205ebc77c366f88 (patch)
treeec9f6129e0f0b9c99859e234bfc411d400b8d08e /epan/packet_info.h
parent13cfdd7b719893fd571afc39db2819350234a882 (diff)
downloadwireshark-dd54ba9396d289500c8911457205ebc77c366f88.tar.gz
wireshark-dd54ba9396d289500c8911457205ebc77c366f88.tar.bz2
wireshark-dd54ba9396d289500c8911457205ebc77c366f88.zip
Moved the packet_info structure and supporting functions out of
packet.{h,c} and into a separate packet_info{h,c}. svn path=/trunk/; revision=3225
Diffstat (limited to 'epan/packet_info.h')
-rw-r--r--epan/packet_info.h101
1 files changed, 101 insertions, 0 deletions
diff --git a/epan/packet_info.h b/epan/packet_info.h
new file mode 100644
index 0000000000..ac07e34ddc
--- /dev/null
+++ b/epan/packet_info.h
@@ -0,0 +1,101 @@
+/* packet_info.h
+ * Definitions for packet info structures and routines
+ *
+ * $Id: packet_info.h,v 1.1 2001/04/01 04:50:42 hagbard Exp $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@zing.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.
+ */
+
+#ifndef __PACKET_INFO_H__
+#define __PACKET_INFO_H__
+
+#include "frame_data.h"
+#include "tvbuff.h"
+
+/* Types of addresses Ethereal knows about. */
+typedef enum {
+ AT_NONE, /* no link-layer address */
+ AT_ETHER, /* MAC (Ethernet, 802.x, FDDI) address */
+ AT_IPv4, /* IPv4 */
+ AT_IPv6, /* IPv6 */
+ AT_IPX, /* IPX */
+ AT_SNA, /* SNA */
+ AT_ATALK, /* Appletalk DDP */
+ AT_VINES, /* Banyan Vines */
+ AT_OSI, /* OSI NSAP */
+ AT_DLCI /* Frame Relay DLCI */
+} address_type;
+
+typedef struct _address {
+ address_type type; /* type of address */
+ int len; /* length of address, in bytes */
+ const guint8 *data; /* bytes that constitute address */
+} address;
+
+#define SET_ADDRESS(addr, addr_type, addr_len, addr_data) { \
+ (addr)->type = (addr_type); \
+ (addr)->len = (addr_len); \
+ (addr)->data = (addr_data); \
+ }
+
+/* Types of port numbers Ethereal knows about. */
+typedef enum {
+ PT_NONE, /* no port number */
+ PT_SCTP, /* SCTP */
+ PT_TCP, /* TCP */
+ PT_UDP, /* UDP */
+ PT_NCP /* NCP connection */
+} port_type;
+
+#define P2P_DIR_UNKNOWN -1
+#define P2P_DIR_SENT 0
+#define P2P_DIR_RECV 1
+
+typedef struct _packet_info {
+ const char *current_proto; /* name of protocol currently being dissected */
+ frame_data *fd;
+ tvbuff_t *compat_top_tvb; /* only needed while converting Ethereal to use tvbuffs */
+ union wtap_pseudo_header *pseudo_header;
+ int len;
+ int captured_len;
+ address dl_src; /* link-layer source address */
+ address dl_dst; /* link-layer destination address */
+ address net_src; /* network-layer source address */
+ address net_dst; /* network-layer destination address */
+ address src; /* source address (net if present, DL otherwise )*/
+ address dst; /* destination address (net if present, DL otherwise )*/
+ guint32 ethertype; /* Ethernet Type Code, if this is an Ethernet packet */
+ guint32 ipproto; /* IP protocol, if this is an IP packet */
+ guint32 ipxptype; /* IPX packet type, if this is an IPX packet */
+ gboolean fragmented; /* TRUE if the protocol is only a fragment */
+ port_type ptype; /* type of the following two port numbers */
+ guint32 srcport; /* source port */
+ guint32 destport; /* destination port */
+ guint32 match_port;
+ int iplen;
+ int iphdrlen;
+ int p2p_dir;
+} packet_info;
+
+void blank_packetinfo(void);
+
+extern packet_info pi;
+
+#endif /* __PACKET_INFO_H__ */