Add in some heuristics to try to detect AIX libpcap format. (This works
[obnox/wireshark/wip.git] / packet-vines.h
1 /* packet-vines.h
2  * Definitions for packet disassembly structures and routines
3  *
4  * $Id: packet-vines.h,v 1.9 2001/04/17 00:46:03 guy Exp $
5  *
6  * Don Lafontaine <lafont02@cn.ca>
7  *
8  * Ethereal - Network traffic analyzer
9  * By Gerald Combs <gerald@zing.org>
10  * Copyright 1998 Gerald Combs
11  * Joerg Mayer <jmayer@loplof.de>
12  *
13  * 
14  * This program is free software; you can redistribute it and/or
15  * modify it under the terms of the GNU General Public License
16  * as published by the Free Software Foundation; either version 2
17  * of the License, or (at your option) any later version.
18  * 
19  * This program is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22  * GNU General Public License for more details.
23  * 
24  * You should have received a copy of the GNU General Public License
25  * along with this program; if not, write to the Free Software
26  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
27  */
28
29 /* Information about VINES can be found in
30  *
31  * VINES Protocol Definition
32  * Order Number: DA254-00
33  * Banyan Systems incorporated
34  * February 1990
35  * Part Number: 092093-000
36  */
37
38 #ifndef __PACKETVINES_H__
39 #define __PACKETVINES_H__
40
41 #include "to_str.h"
42
43 #define VINES_ADDR_LEN  6
44
45 /* VINES IP structs and definitions */
46
47 enum {
48   VIP_PROTO_IPC = 1,     /* Interprocess Communications Protocol (IPC) */
49   VIP_PROTO_SPP = 2,    /* Sequenced Packet Protcol (SPP) */
50   VIP_PROTO_ARP = 4,    /* Address Resolution Protocol (ARP) */
51   VIP_PROTO_RTP = 5,    /* Routing Update Protocol (RTP) / SRTP (Sequenced RTP) */
52   VIP_PROTO_ICP = 6     /* Internet Control Protocol (ICP) */
53 };
54
55 typedef struct _e_vip {
56   guint16 vip_chksum;
57   guint16 vip_pktlen;
58   guint8  vip_tctl;     /* Transport Control */
59   guint8  vip_proto;
60   guint32 vip_dnet;
61   guint16 vip_dsub;
62   guint32 vip_snet;
63   guint16 vip_ssub;
64 } e_vip;
65
66 /* VINES SPP structs and definitions */
67
68 enum {
69   VSPP_PKTTYPE_DATA = 1,        /* User Data */
70   VSPP_PKTTYPE_DISC = 3,        /* Diconnect Request */
71   VSPP_PKTTYPE_PROBE = 4,       /* Probe (retransmit) */
72   VSPP_PKTTYPE_ACK = 5          /* Acknowledgement */
73 };
74
75 typedef struct _e_vspp {
76   guint16 vspp_sport;
77   guint16 vspp_dport;
78   guint8  vspp_pkttype;
79   guint8  vspp_control;
80   guint16 vspp_lclid;   /* Local Connection ID */
81   guint16 vspp_rmtid;   /* Remote Connection ID */
82   guint16 vspp_seqno;   /* Sequence Number */
83   guint16 vspp_ack;     /* Acknowledgement Number */
84   guint16 vspp_win;
85 } e_vspp;
86
87 /* VINES SMB structs and definitions */
88
89 typedef struct _e_vsmb {
90   guint32 vsmb_tag;
91   guint8  vsmb_func;
92   guint8  vsmb_d1;
93   guint32 vsmb_d2;
94   guint32 vsmb_d3;
95   guint16 vsmb_d4;
96   guint32 vsmb_d5;
97   guint32 vsmb_d6;
98   guint16 vsmb_treeid; 
99   guint16 vsmb_pid;
100   guint16 vsmb_uid;
101   guint16 vsmb_mid; 
102   guint8  vsmb_wcnt;
103   guint16 vsmb_pbytes;
104   guint16 vsmb_dbytes;
105   guint16 vsmb_maxpbytes;
106   guint16 vsmb_maxdbytes;
107   guint16 vsmb_setupw;
108   guint16 vsmb_tflags;
109   guint32 vsmb_ttw;
110 } e_vsmb;
111
112 void capture_vines(const u_char *, int, packet_counts *);
113
114 #endif /* packet-vines.h */