Fix some places where "Ethereal" wasn't capitalized and boldfaced.
[obnox/wireshark/wip.git] / packet-ip.h
1 /* packet-ip.h
2  * Definitions for IP packet disassembly structures and routines
3  *
4  * $Id: packet-ip.h,v 1.27 2003/04/29 17:24:35 guy Exp $
5  *
6  * Ethereal - Network traffic analyzer
7  * By Gerald Combs <gerald@ethereal.com>
8  * Copyright 1998 Gerald Combs
9  *
10  * This program is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU General Public License
12  * as published by the Free Software Foundation; either version 2
13  * of the License, or (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
23  */
24
25
26 #ifndef __PACKET_IP_H__
27 #define __PACKET_IP_H__
28
29 typedef struct _e_ip
30     {
31     guint8  ip_v_hl; /* combines ip_v and ip_hl */
32     guint8  ip_tos;
33     guint16 ip_len;
34     guint16 ip_id;
35     guint16 ip_off;
36     guint8  ip_ttl;
37     guint8  ip_p;
38     guint16 ip_sum;
39     guint32 ip_src;
40     guint32 ip_dst;
41 } e_ip;
42
43 void capture_ip(const guchar *, int, int, packet_counts *);
44
45 typedef enum {
46   NO_LENGTH,            /* option has no data, hence no length */
47   FIXED_LENGTH,         /* option always has the same length */
48   VARIABLE_LENGTH       /* option is variable-length - optlen is minimum */
49 } opt_len_type;
50
51 /* Member of table of IP or TCP options. */
52 typedef struct ip_tcp_opt {
53   int   optcode;        /* code for option */
54   char  *name;          /* name of option */
55   int   *subtree_index; /* pointer to subtree index for option */
56   opt_len_type len_type; /* type of option length field */
57   int   optlen;         /* value length should be (minimum if VARIABLE) */
58   void  (*dissect)(const struct ip_tcp_opt *, tvbuff_t *, int, guint,
59                    packet_info *, proto_tree *);
60                         /* routine to dissect option */
61 } ip_tcp_opt;
62
63 /* Routine to dissect IP or TCP options. */
64 void       dissect_ip_tcp_options(tvbuff_t *, int, guint,
65     const ip_tcp_opt *, int, int, packet_info *, proto_tree *);
66
67 /* Export the DSCP value-string table for other protocols */
68 extern const value_string dscp_vals[];
69
70 #endif