diff options
author | Ed Warnicke <hagbard@physics.rutgers.edu> | 2001-04-01 04:50:42 +0000 |
---|---|---|
committer | Ed Warnicke <hagbard@physics.rutgers.edu> | 2001-04-01 04:50:42 +0000 |
commit | dd54ba9396d289500c8911457205ebc77c366f88 (patch) | |
tree | ec9f6129e0f0b9c99859e234bfc411d400b8d08e /epan/packet_info.h | |
parent | 13cfdd7b719893fd571afc39db2819350234a882 (diff) | |
download | wireshark-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.h | 101 |
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__ */ |