]> The Tcpdump Group git mirrors - tcpdump/blobdiff - rx.h
Update from current NetBSD version of ieee80211_radiotap.h.
[tcpdump] / rx.h
diff --git a/rx.h b/rx.h
index ef5a8627689b64b161f38ace95b70037b15790c0..b79dd30cde0d2f5568fd2f9f88a856ab3a55a978 100644 (file)
--- a/rx.h
+++ b/rx.h
@@ -1,7 +1,29 @@
+/*
+ * Copyright: (c) 2000 United States Government as represented by the
+ *     Secretary of the Navy. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in
+ *      the documentation and/or other materials provided with the
+ *      distribution.
+ *   3. The names of the authors may not be used to endorse or promote
+ *      products derived from this software without specific prior
+ *      written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
 /*
  * Rx protocol format
  *
- * $Id: rx.h,v 1.1 1999-11-17 05:45:58 assar Exp $
+ * $Id: rx.h,v 1.8 2002-12-11 07:14:11 guy Exp $
  */
 
 #define FS_RX_PORT     7000
@@ -40,7 +62,7 @@ struct rx_header {
        u_int32_t callNumber;
        u_int32_t seq;
        u_int32_t serial;
-       u_char type;
+       u_int8_t type;
 #define RX_PACKET_TYPE_DATA            1
 #define RX_PACKET_TYPE_ACK             2
 #define RX_PACKET_TYPE_BUSY            3
@@ -51,18 +73,41 @@ struct rx_header {
 #define RX_PACKET_TYPE_DEBUG           8
 #define RX_PACKET_TYPE_PARAMS          9
 #define RX_PACKET_TYPE_VERSION         13
-       u_char flags;
+       u_int8_t flags;
 #define RX_CLIENT_INITIATED    1
 #define RX_REQUEST_ACK         2
 #define RX_LAST_PACKET         4
 #define RX_MORE_PACKETS                8
 #define RX_FREE_PACKET         16
-       u_char userStatus;
-       u_char securityIndex;
-       u_short spare;                  /* How clever: even though the AFS */
-       u_short serviceId;              /* header files indicate that the */
+#define RX_SLOW_START_OK       32
+#define RX_JUMBO_PACKET                32
+       u_int8_t userStatus;
+       u_int8_t securityIndex;
+       u_int16_t spare;                /* How clever: even though the AFS */
+       u_int16_t serviceId;            /* header files indicate that the */
 };                                     /* serviceId is first, it's really */
                                        /* encoded _after_ the spare field */
                                        /* I wasted a day figuring that out! */
 
-#define NUM_RX_FLAGS 5
+#define NUM_RX_FLAGS 7
+
+#define RX_MAXACKS 255
+
+struct rx_ackPacket {
+       u_int16_t bufferSpace;          /* Number of packet buffers available */
+       u_int16_t maxSkew;              /* Max diff between ack'd packet and */
+                                       /* highest packet received */
+       u_int32_t firstPacket;          /* The first packet in ack list */
+       u_int32_t previousPacket;       /* Previous packet recv'd (obsolete) */
+       u_int32_t serial;               /* # of packet that prompted the ack */
+       u_int8_t reason;                /* Reason for acknowledgement */
+       u_int8_t nAcks;                 /* Number of acknowledgements */
+       u_int8_t acks[RX_MAXACKS];      /* Up to RX_MAXACKS acknowledgements */
+};
+
+/*
+ * Values for the acks array
+ */
+
+#define RX_ACK_TYPE_NACK       0       /* Don't have this packet */
+#define RX_ACK_TYPE_ACK                1       /* I have this packet */