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