added some options and enhancements to the print output:
[obnox/wireshark/wip.git] / packet-mtp3.h
1 /* packet-mtp3.h
2  *
3  * $Id: packet-mtp3.h,v 1.5 2004/04/21 05:53:57 guy Exp $
4  *
5  * Ethereal - Network traffic analyzer
6  * By Gerald Combs <gerald@ethereal.com>
7  * Copyright 1998 Gerald Combs
8  *
9  * This program is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License
11  * as published by the Free Software Foundation; either version 2
12  * of the License, or (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22  */
23
24 typedef enum {
25   ITU_STANDARD  = 1,
26   ANSI_STANDARD = 2,
27   CHINESE_ITU_STANDARD = 3
28 } Standard_Type;
29
30 extern Standard_Type mtp3_standard;
31
32 typedef enum {
33   MTP3_NET_ADDR_FMT_DEC         = 1,
34   MTP3_NET_ADDR_FMT_HEX         = 2,
35   MTP3_NET_ADDR_FMT_NI_DEC      = 3,
36   MTP3_NET_ADDR_FMT_NI_HEX      = 4,
37   MTP3_NET_ADDR_FMT_DASHED      = 5
38 } mtp3_net_addr_fmt_e;
39
40 typedef struct _mtp3_addr_pc_t {
41   mtp3_net_addr_fmt_e   type;
42   guint32               pc;
43   guint8                ni;
44 } mtp3_addr_pc_t;
45
46 typedef struct _mtp3_tap_rec_t {
47   mtp3_addr_pc_t        addr_opc;
48   mtp3_addr_pc_t        addr_dpc;
49   guint8                si_code;
50   guint16               size;
51 } mtp3_tap_rec_t;
52
53 #define ITU_PC_LENGTH     2
54 #define ITU_PC_MASK       0x3FFF
55
56 #define ANSI_PC_LENGTH    3
57 #define ANSI_NCM_LENGTH   1
58 #define ANSI_MEMBER_OFFSET 0
59 #define ANSI_CLUSTER_OFFSET 1
60 #define ANSI_NETWORK_OFFSET 2
61 #define ANSI_PC_MASK      0xFFFFFF
62 #define ANSI_NETWORK_MASK 0x0000FF
63 #define ANSI_CLUSTER_MASK 0x00FF00
64 #define ANSI_MEMBER_MASK  0xFF0000
65 #define ANSI_PC_STRING_LENGTH 16
66
67 extern void mtp3_addr_to_str_buf(const guint8 *data, gchar *buf);
68
69 /*
70  * the following allows TAP code access to the different SIs
71  * without having to duplicate it
72  */
73 extern const value_string mtp3_service_indicator_code_short_vals[];
74
75 /*
76  * I only want to gather stats for non-spare SI codes
77  */
78 #define MTP3_NUM_SI_CODE        9