Update Free Software Foundation address.
[metze/wireshark/wip.git] / epan / dissectors / packet-pw-common.h
1 /* packet-pw-common.h
2  * Interface of pw-common module
3  * Copyright 2009, Artem Tamazov <artem.tamazov@tellabs.com>
4  *
5  * $Id$
6  *
7  * Wireshark - Network traffic analyzer
8  * By Gerald Combs <gerald@wireshark.org>
9  * Copyright 1998 Gerald Combs
10  *
11  * This program is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU General Public License
13  * as published by the Free Software Foundation; either version 2
14  * of the License, or (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software
23  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
24  */
25
26 #ifndef PACKET_PW_COMMON_H
27 #define PACKET_PW_COMMON_H
28
29 #include <glib.h>
30 #include <epan/packet.h>
31
32 #define PWC_SIZEOF_CW 4
33
34 extern const char pwc_longname_pw_satop[];
35 extern const char pwc_longname_pw_cesopsn[];
36 extern const char pwc_longname_pw_atm_n1_cw[];
37 extern const char pwc_longname_pw_atm_n1_nocw[];
38 extern const char pwc_longname_pw_atm_11_or_aal5_pdu[];
39 extern const char pwc_longname_pw_atm_aal5_sdu[];
40
41 extern const value_string pwc_vals_cw_l_bit[];
42 extern const value_string pwc_vals_cw_r_bit[];
43 extern const value_string pwc_vals_cw_frag[];
44
45 typedef enum {
46         PWC_CW_BAD_BITS03               = 1 << 0
47         ,PWC_CW_BAD_PAYLEN_LT_0         = 1 << 1
48         ,PWC_CW_BAD_PAYLEN_GT_PACKET    = 1 << 2
49         ,PWC_CW_BAD_LEN_MUST_BE_0       = 1 << 3
50         ,PWC_CW_BAD_FRAG                = 1 << 4
51         ,PWC_CW_BAD_RSV                 = 1 << 5
52         ,PWC_CW_BAD_FLAGS               = 1 << 8
53         ,PWC_CW_BAD_PAYLEN_LE_0         = 1 << 9
54         ,PWC_CW_BAD_PADDING_NE_0        = 1 << 10
55         ,PWC_ANYOF_CW_BAD       = PWC_CW_BAD_BITS03
56                                 + PWC_CW_BAD_PAYLEN_LT_0
57                                 + PWC_CW_BAD_PAYLEN_GT_PACKET
58                                 + PWC_CW_BAD_LEN_MUST_BE_0
59                                 + PWC_CW_BAD_FRAG
60                                 + PWC_CW_BAD_RSV
61                                 + PWC_CW_BAD_FLAGS
62                                 + PWC_CW_BAD_PAYLEN_LE_0
63                                 + PWC_CW_BAD_PADDING_NE_0
64         ,PWC_CW_SUSPECT_LM              = 1 << 6
65         ,PWC_ANYOF_CW_SUSPECT   = PWC_CW_SUSPECT_LM
66         ,PWC_PAY_SIZE_BAD               = 1 << 7
67 }
68 pwc_packet_properties_t;
69 #define PWC_PACKET_PROPERTIES_T_INITIALIZER 0
70
71 typedef enum {
72         PWC_DEMUX_MPLS = 0
73         ,PWC_DEMUX_UDP          /*IPv4/IPv6 and UDP as demultiplexing layer*/
74         ,PWC_DEMUX_L2TP         /*IPv4/IPv6 and L2TPv3 as demultiplexing layer*/
75 }
76 pwc_demux_type_t;
77
78 extern void pwc_item_append_cw(proto_item* item, const guint32 cw, const gboolean append_text);
79 extern void pwc_item_append_text_n_items(proto_item* item, const int n, const char * const item_text);
80
81 #endif