]> git.saurik.com Git - apple/network_cmds.git/blob - tcpdump.tproj/appletalk.h
network_cmds-77.tar.gz
[apple/network_cmds.git] / tcpdump.tproj / appletalk.h
1 /*
2 * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights
7 * Reserved. This file contains Original Code and/or Modifications of
8 * Original Code as defined in and that are subject to the Apple Public
9 * Source License Version 1.0 (the 'License'). You may not use this file
10 * except in compliance with the License. Please obtain a copy of the
11 * License at http://www.apple.com/publicsource and read it before using
12 * this file.
13 *
14 * The Original Code and all software distributed under the License are
15 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
16 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
17 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
19 * License for the specific language governing rights and limitations
20 * under the License."
21 *
22 * @APPLE_LICENSE_HEADER_END@
23 */
24 /*
25 * Copyright (c) 1988, 1989, 1990, 1993, 1994, 1995, 1996
26 * The Regents of the University of California. All rights reserved.
27 *
28 * Redistribution and use in source and binary forms, with or without
29 * modification, are permitted provided that: (1) source code distributions
30 * retain the above copyright notice and this paragraph in its entirety, (2)
31 * distributions including binary code include the above copyright notice and
32 * this paragraph in its entirety in the documentation or other materials
33 * provided with the distribution, and (3) all advertising materials mentioning
34 * features or use of this software display the following acknowledgement:
35 * ``This product includes software developed by the University of California,
36 * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
37 * the University nor the names of its contributors may be used to endorse
38 * or promote products derived from this software without specific prior
39 * written permission.
40 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
41 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
42 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
43 *
44 * AppleTalk protocol formats (courtesy Bill Croft of Stanford/SUMEX).
45 *
46 * @(#) $Header: /cvs/Darwin/Commands/NeXT/network_cmds/tcpdump.tproj/appletalk.h,v 1.1.1.1 1999/05/02 03:58:31 wsanchez Exp $ (LBL)
47 */
48
49 struct LAP {
50 u_char dst;
51 u_char src;
52 u_char type;
53 };
54 #define lapShortDDP 1 /* short DDP type */
55 #define lapDDP 2 /* DDP type */
56 #define lapKLAP 'K' /* Kinetics KLAP type */
57
58 /* Datagram Delivery Protocol */
59
60 struct atDDP {
61 u_short length;
62 u_short checksum;
63 u_short dstNet;
64 u_short srcNet;
65 u_char dstNode;
66 u_char srcNode;
67 u_char dstSkt;
68 u_char srcSkt;
69 u_char type;
70 };
71
72 struct atShortDDP {
73 u_short length;
74 u_char dstSkt;
75 u_char srcSkt;
76 u_char type;
77 };
78
79 #define ddpMaxWKS 0x7F
80 #define ddpMaxData 586
81 #define ddpLengthMask 0x3FF
82 #define ddpHopShift 10
83 #define ddpSize 13 /* size of DDP header (avoid struct padding) */
84 #define ddpSSize 5
85 #define ddpWKS 128 /* boundary of DDP well known sockets */
86 #define ddpRTMP 1 /* RTMP type */
87 #define ddpRTMPrequest 5 /* RTMP request type */
88 #define ddpNBP 2 /* NBP type */
89 #define ddpATP 3 /* ATP type */
90 #define ddpECHO 4 /* ECHO type */
91 #define ddpIP 22 /* IP type */
92 #define ddpARP 23 /* ARP type */
93 #define ddpKLAP 0x4b /* Kinetics KLAP type */
94
95
96 /* AppleTalk Transaction Protocol */
97
98 struct atATP {
99 u_char control;
100 u_char bitmap;
101 u_short transID;
102 int32_t userData;
103 };
104
105 #define atpReqCode 0x40
106 #define atpRspCode 0x80
107 #define atpRelCode 0xC0
108 #define atpXO 0x20
109 #define atpEOM 0x10
110 #define atpSTS 0x08
111 #define atpFlagMask 0x3F
112 #define atpControlMask 0xF8
113 #define atpMaxNum 8
114 #define atpMaxData 578
115
116
117 /* AppleTalk Echo Protocol */
118
119 struct atEcho {
120 u_char echoFunction;
121 u_char *echoData;
122 };
123
124 #define echoSkt 4 /* the echoer socket */
125 #define echoSize 1 /* size of echo header */
126 #define echoRequest 1 /* echo request */
127 #define echoReply 2 /* echo request */
128
129
130 /* Name Binding Protocol */
131
132 struct atNBP {
133 u_char control;
134 u_char id;
135 };
136
137 struct atNBPtuple {
138 u_short net;
139 u_char node;
140 u_char skt;
141 u_char enumerator;
142 };
143
144 #define nbpBrRq 0x10
145 #define nbpLkUp 0x20
146 #define nbpLkUpReply 0x30
147
148 #define nbpNIS 2
149 #define nbpTupleMax 15
150
151 #define nbpHeaderSize 2
152 #define nbpTupleSize 5
153
154 #define nbpSkt 2 /* NIS */
155
156
157 /* Routing Table Maint. Protocol */
158
159 #define rtmpSkt 1 /* number of RTMP socket */
160 #define rtmpSize 4 /* minimum size */
161 #define rtmpTupleSize 3
162
163
164 /* Zone Information Protocol */
165
166 struct zipHeader {
167 u_char command;
168 u_char netcount;
169 };
170
171 #define zipHeaderSize 2
172 #define zipQuery 1
173 #define zipReply 2
174 #define zipTakedown 3
175 #define zipBringup 4
176 #define ddpZIP 6
177 #define zipSkt 6
178 #define GetMyZone 7
179 #define GetZoneList 8
180
181 /*
182 * UDP port range used for ddp-in-udp encapsulation is 16512-16639
183 * for client sockets (128-255) and 200-327 for server sockets
184 * (0-127). We also try to recognize the pre-April 88 server
185 * socket range of 768-895.
186 */
187 #define atalk_port(p) \
188 (((unsigned)((p) - 16512) < 128) || \
189 ((unsigned)((p) - 200) < 128) || \
190 ((unsigned)((p) - 768) < 128))