Set "v120len" regardless of whether "tree" is null or not; we use it
[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.3 1999/10/22 08:30:04 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@telemation.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 /* VINES IP structs and definitions */
42
43 enum {
44   VIP_PROTO_IPC = 1,     /* Interprocess Communications Protocol (IPC) */
45   VIP_PROTO_SPP = 2,    /* Sequenced Packet Protcol (SPP) */
46   VIP_PROTO_ARP = 4,    /* Address Resolution Protocol (ARP) */
47   VIP_PROTO_RTP = 5,    /* Routing Update Protocol (RTP) / SRTP (Sequenced RTP) */
48   VIP_PROTO_ICP = 6     /* Internet Control Protocol (ICP) */
49 };
50
51 typedef struct _e_vip {
52   guint16 vip_chksum;
53   guint16 vip_pktlen;
54   guint8  vip_tctl;     /* Transport Control */
55   guint8  vip_proto;
56   guint32 vip_dnet;
57   guint16 vip_dsub;
58   guint32 vip_snet;
59   guint16 vip_ssub;
60 } e_vip;
61
62 /* VINES SPP structs and definitions */
63
64 enum {
65   VSPP_PKTTYPE_DATA = 1,        /* User Data */
66   VSPP_PKTTYPE_DISC = 3,        /* Diconnect Request */
67   VSPP_PKTTYPE_PROBE = 4,       /* Probe (retransmit) */
68   VSPP_PKTTYPE_ACK = 5          /* Acknowledgement */
69 };
70
71 typedef struct _e_vspp {
72   guint16 vspp_sport;
73   guint16 vspp_dport;
74   guint8  vspp_pkttype;
75   guint8  vspp_control;
76   guint16 vspp_lclid;   /* Local Connection ID */
77   guint16 vspp_rmtid;   /* Remote Connection ID */
78   guint16 vspp_seqno;   /* Sequence Number */
79   guint16 vspp_ack;     /* Acknowledgement Number */
80   guint16 vspp_win;
81 } e_vspp;
82
83 /* VINES SMB structs and definitions */
84
85 typedef struct _e_vsmb {
86   guint32 vsmb_tag;
87   guint8  vsmb_func;
88   guint8  vsmb_d1;
89   guint32 vsmb_d2;
90   guint32 vsmb_d3;
91   guint16 vsmb_d4;
92   guint32 vsmb_d5;
93   guint32 vsmb_d6;
94   guint16 vsmb_treeid; 
95   guint16 vsmb_pid;
96   guint16 vsmb_uid;
97   guint16 vsmb_mid; 
98   guint8  vsmb_wcnt;
99   guint16 vsmb_pbytes;
100   guint16 vsmb_dbytes;
101   guint16 vsmb_maxpbytes;
102   guint16 vsmb_maxdbytes;
103   guint16 vsmb_setupw;
104   guint16 vsmb_tflags;
105   guint32 vsmb_ttw;
106 } e_vsmb;
107
108 /*
109  * Routine to take a Vines address and generate a string.
110  */
111 extern gchar *vines_addr_to_str(const guint8 *addrp);
112
113 #endif /* packet-vines.h */