source: rtems-libbsd/freebsd/contrib/tcpdump/appletalk.h @ 084d4db

4.11
Last change on this file since 084d4db was 8440506, checked in by Chris Johns <chrisj@…>, on 06/15/15 at 07:42:23

Add tcpdump and libpcap.

  • Update the file builder generator to handle generator specific cflags and includes. The tcpdump and libpcap have localised headers and need specific headers paths to see them. There are also module specific flags and these need to be passed to the lex and yacc generators.
  • Add the tcpdump support.
  • Property mode set to 100644
File size: 4.2 KB
Line 
1/*
2 * Copyright (c) 1988, 1989, 1990, 1993, 1994, 1995, 1996
3 *      The Regents of the University of California.  All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that: (1) source code distributions
7 * retain the above copyright notice and this paragraph in its entirety, (2)
8 * distributions including binary code include the above copyright notice and
9 * this paragraph in its entirety in the documentation or other materials
10 * provided with the distribution, and (3) all advertising materials mentioning
11 * features or use of this software display the following acknowledgement:
12 * ``This product includes software developed by the University of California,
13 * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
14 * the University nor the names of its contributors may be used to endorse
15 * or promote products derived from this software without specific prior
16 * written permission.
17 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
18 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
19 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 * AppleTalk protocol formats (courtesy Bill Croft of Stanford/SUMEX).
22 *
23 * @(#) $Header: /tcpdump/master/tcpdump/appletalk.h,v 1.16 2004-05-01 09:41:50 hannes Exp $ (LBL)
24 */
25
26struct LAP {
27        u_int8_t        dst;
28        u_int8_t        src;
29        u_int8_t        type;
30};
31#define lapShortDDP     1       /* short DDP type */
32#define lapDDP          2       /* DDP type */
33#define lapKLAP         'K'     /* Kinetics KLAP type */
34
35/* Datagram Delivery Protocol */
36
37struct atDDP {
38        u_int16_t       length;
39        u_int16_t       checksum;
40        u_int16_t       dstNet;
41        u_int16_t       srcNet;
42        u_int8_t        dstNode;
43        u_int8_t        srcNode;
44        u_int8_t        dstSkt;
45        u_int8_t        srcSkt;
46        u_int8_t        type;
47};
48
49struct atShortDDP {
50        u_int16_t       length;
51        u_int8_t        dstSkt;
52        u_int8_t        srcSkt;
53        u_int8_t        type;
54};
55
56#define ddpMaxWKS       0x7F
57#define ddpMaxData      586
58#define ddpLengthMask   0x3FF
59#define ddpHopShift     10
60#define ddpSize         13      /* size of DDP header (avoid struct padding) */
61#define ddpSSize        5
62#define ddpWKS          128     /* boundary of DDP well known sockets */
63#define ddpRTMP         1       /* RTMP type */
64#define ddpRTMPrequest  5       /* RTMP request type */
65#define ddpNBP          2       /* NBP type */
66#define ddpATP          3       /* ATP type */
67#define ddpECHO         4       /* ECHO type */
68#define ddpIP           22      /* IP type */
69#define ddpARP          23      /* ARP type */
70#define ddpEIGRP        88      /* EIGRP over Appletalk */
71#define ddpKLAP         0x4b    /* Kinetics KLAP type */
72
73
74/* AppleTalk Transaction Protocol */
75
76struct atATP {
77        u_int8_t        control;
78        u_int8_t        bitmap;
79        u_int16_t       transID;
80        int32_t userData;
81};
82
83#define atpReqCode      0x40
84#define atpRspCode      0x80
85#define atpRelCode      0xC0
86#define atpXO           0x20
87#define atpEOM          0x10
88#define atpSTS          0x08
89#define atpFlagMask     0x3F
90#define atpControlMask  0xF8
91#define atpMaxNum       8
92#define atpMaxData      578
93
94
95/* AppleTalk Echo Protocol */
96
97struct atEcho {
98        u_int8_t        echoFunction;
99        u_int8_t        *echoData;
100};
101
102#define echoSkt         4               /* the echoer socket */
103#define echoSize        1               /* size of echo header */
104#define echoRequest     1               /* echo request */
105#define echoReply       2               /* echo request */
106
107
108/* Name Binding Protocol */
109
110struct atNBP {
111        u_int8_t        control;
112        u_int8_t        id;
113};
114
115struct atNBPtuple {
116        u_int16_t       net;
117        u_int8_t        node;
118        u_int8_t        skt;
119        u_int8_t        enumerator;
120};
121
122#define nbpBrRq         0x10
123#define nbpLkUp         0x20
124#define nbpLkUpReply    0x30
125
126#define nbpNIS          2
127#define nbpTupleMax     15
128
129#define nbpHeaderSize   2
130#define nbpTupleSize    5
131
132#define nbpSkt          2               /* NIS */
133
134
135/* Routing Table Maint. Protocol */
136
137#define rtmpSkt         1       /* number of RTMP socket */
138#define rtmpSize        4       /* minimum size */
139#define rtmpTupleSize   3
140
141
142/* Zone Information Protocol */
143
144struct zipHeader {
145        u_int8_t        command;
146        u_int8_t        netcount;
147};
148
149#define zipHeaderSize   2
150#define zipQuery        1
151#define zipReply        2
152#define zipTakedown     3
153#define zipBringup      4
154#define ddpZIP          6
155#define zipSkt          6
156#define GetMyZone       7
157#define GetZoneList     8
158
159/*
160 * UDP port range used for ddp-in-udp encapsulation is 16512-16639
161 * for client sockets (128-255) and 200-327 for server sockets
162 * (0-127).  We also try to recognize the pre-April 88 server
163 * socket range of 768-895.
164 */
165#define atalk_port(p) \
166        (((unsigned)((p) - 16512) < 128) || \
167         ((unsigned)((p) - 200) < 128) || \
168         ((unsigned)((p) - 768) < 128))
Note: See TracBrowser for help on using the repository browser.