aboutsummaryrefslogtreecommitdiffstats
path: root/packet-afs.h
blob: ac73739f1b69335a6878729320885fc7bb306718 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
/* packet-afs.h
 * Definitions for packet disassembly structures and routines
 *
 * $Id: packet-afs.h,v 1.7 2001/05/27 05:00:17 guy Exp $
 *
 * Ethereal - Network traffic analyzer
 * By Gerald Combs <gerald@ethereal.com>
 * Copyright 1998 Gerald Combs
 *
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */

#ifndef PACKET_AFS_H
#define PACKET_AFS_H

#define AFS_PORT_FS	7000
#define AFS_PORT_CB	7001
#define AFS_PORT_PROT	7002
#define AFS_PORT_VLDB	7003
#define AFS_PORT_KAUTH	7004
#define AFS_PORT_VOL	7005
#define AFS_PORT_ERROR	7006		/* Doesn't seem to be used */
#define AFS_PORT_BOS	7007
#define AFS_PORT_UPDATE	7008
#define AFS_PORT_RMTSYS	7009
#define AFS_PORT_BACKUP 7021

#ifndef AFSNAMEMAX
#define AFSNAMEMAX 256
#endif

#ifndef AFSOPAQUEMAX
#define AFSOPAQUEMAX 1024
#endif

#define PRNAMEMAX 64
#define VLNAMEMAX 65
#define KANAMEMAX 64
#define BOSNAMEMAX 256

#define	PRSFS_READ		1 /* Read files */
#define	PRSFS_WRITE		2 /* Write files */
#define	PRSFS_INSERT		4 /* Insert files into a directory */
#define	PRSFS_LOOKUP		8 /* Lookup files into a directory */
#define	PRSFS_DELETE		16 /* Delete files */
#define	PRSFS_LOCK		32 /* Lock files */
#define	PRSFS_ADMINISTER	64 /* Change ACL's */

#define CB_TYPE_EXCLUSIVE 1
#define CB_TYPE_SHARED 2
#define CB_TYPE_DROPPED 3

#define OPCODE_LOW 		0
#define OPCODE_HIGH     550 /* arbitrary, is just a fuzzy check for encrypted traffic */
#define VOTE_LOW        10000
#define VOTE_HIGH       10007
#define DISK_LOW        20000
#define DISK_HIGH       20013

#define FILE_TYPE_FILE 1
#define FILE_TYPE_DIR 2
#define FILE_TYPE_LINK 3

struct afs_header {
	guint32 opcode;
};

struct afs_volsync {
     guint32 spare1;
     guint32 spare2;
     guint32 spare3;
     guint32 spare4;
     guint32 spare5;
     guint32 spare6;
};

struct afs_status {
     guint32 InterfaceVersion;
     guint32 FileType;
     guint32 LinkCount;
     guint32 Length;
     guint32 DataVersion;
     guint32 Author;
     guint32 Owner;
     guint32 CallerAccess;
     guint32 AnonymousAccess;
     guint32 UnixModeBits;
     guint32 ParentVnode;
     guint32 ParentUnique;
     guint32 SegSize;
     guint32 ClientModTime;
     guint32 ServerModTime;
     guint32 Group;
     guint32 SyncCount;
     guint32 spare1;
     guint32 spare2;
     guint32 spare3;
     guint32 spare4;
};

struct afs_volumeinfo {
    guint32  Vid;
    guint32  Type;
    guint32  Type0;
    guint32  Type1;
    guint32  Type2;
    guint32  Type3;
    guint32  Type4;
    guint32  ServerCount;
    guint32  Server0;
    guint32  Server1;
    guint32  Server2;
    guint32  Server3;
    guint32  Server4;
    guint32  Server5;
    guint32  Server6;
    guint32  Server7;
    guint16 Part0;
    guint16 Part1;
    guint16 Part2;
    guint16 Part3;
    guint16 Part4;
    guint16 Part5;
    guint16 Part6;
    guint16 Part7;
};


#endif