]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS-Labs/Demo/FreeRTOS_IoT_Libraries/https/common/WinPCap/pcap/sll.h
Add the Labs projects provided in the V10.2.1_191129 zip file.
[freertos] / FreeRTOS-Labs / Demo / FreeRTOS_IoT_Libraries / https / common / WinPCap / pcap / sll.h
diff --git a/FreeRTOS-Labs/Demo/FreeRTOS_IoT_Libraries/https/common/WinPCap/pcap/sll.h b/FreeRTOS-Labs/Demo/FreeRTOS_IoT_Libraries/https/common/WinPCap/pcap/sll.h
new file mode 100644 (file)
index 0000000..5907bed
--- /dev/null
@@ -0,0 +1,129 @@
+/*-\r
+ * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997\r
+ *     The Regents of the University of California.  All rights reserved.\r
+ *\r
+ * This code is derived from the Stanford/CMU enet packet filter,\r
+ * (net/enet.c) distributed as part of 4.3BSD, and code contributed\r
+ * to Berkeley by Steven McCanne and Van Jacobson both of Lawrence\r
+ * Berkeley Laboratory.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ * 1. Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ * 2. Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ * 3. All advertising materials mentioning features or use of this software\r
+ *    must display the following acknowledgement:\r
+ *      This product includes software developed by the University of\r
+ *      California, Berkeley and its contributors.\r
+ * 4. Neither the name of the University nor the names of its contributors\r
+ *    may be used to endorse or promote products derived from this software\r
+ *    without specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\r
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE\r
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
+ * SUCH DAMAGE.\r
+ *\r
+ * @(#) $Header: /tcpdump/master/libpcap/pcap/sll.h,v 1.2.2.1 2008-05-30 01:36:06 guy Exp $ (LBL)\r
+ */\r
+\r
+/*\r
+ * For captures on Linux cooked sockets, we construct a fake header\r
+ * that includes:\r
+ *\r
+ *     a 2-byte "packet type" which is one of:\r
+ *\r
+ *             LINUX_SLL_HOST          packet was sent to us\r
+ *             LINUX_SLL_BROADCAST     packet was broadcast\r
+ *             LINUX_SLL_MULTICAST     packet was multicast\r
+ *             LINUX_SLL_OTHERHOST     packet was sent to somebody else\r
+ *             LINUX_SLL_OUTGOING      packet was sent *by* us;\r
+ *\r
+ *     a 2-byte Ethernet protocol field;\r
+ *\r
+ *     a 2-byte link-layer type;\r
+ *\r
+ *     a 2-byte link-layer address length;\r
+ *\r
+ *     an 8-byte source link-layer address, whose actual length is\r
+ *     specified by the previous value.\r
+ *\r
+ * All fields except for the link-layer address are in network byte order.\r
+ *\r
+ * DO NOT change the layout of this structure, or change any of the\r
+ * LINUX_SLL_ values below.  If you must change the link-layer header\r
+ * for a "cooked" Linux capture, introduce a new DLT_ type (ask\r
+ * "tcpdump-workers@lists.tcpdump.org" for one, so that you don't give it\r
+ * a value that collides with a value already being used), and use the\r
+ * new header in captures of that type, so that programs that can\r
+ * handle DLT_LINUX_SLL captures will continue to handle them correctly\r
+ * without any change, and so that capture files with different headers\r
+ * can be told apart and programs that read them can dissect the\r
+ * packets in them.\r
+ */\r
+\r
+#ifndef lib_pcap_sll_h\r
+#define lib_pcap_sll_h\r
+\r
+/*\r
+ * A DLT_LINUX_SLL fake link-layer header.\r
+ */\r
+#define SLL_HDR_LEN    16              /* total header length */\r
+#define SLL_ADDRLEN    8               /* length of address field */\r
+\r
+struct sll_header {\r
+       u_int16_t sll_pkttype;          /* packet type */\r
+       u_int16_t sll_hatype;           /* link-layer address type */\r
+       u_int16_t sll_halen;            /* link-layer address length */\r
+       u_int8_t sll_addr[SLL_ADDRLEN]; /* link-layer address */\r
+       u_int16_t sll_protocol;         /* protocol */\r
+};\r
+\r
+/*\r
+ * The LINUX_SLL_ values for "sll_pkttype"; these correspond to the\r
+ * PACKET_ values on Linux, but are defined here so that they're\r
+ * available even on systems other than Linux, and so that they\r
+ * don't change even if the PACKET_ values change.\r
+ */\r
+#define LINUX_SLL_HOST         0\r
+#define LINUX_SLL_BROADCAST    1\r
+#define LINUX_SLL_MULTICAST    2\r
+#define LINUX_SLL_OTHERHOST    3\r
+#define LINUX_SLL_OUTGOING     4\r
+\r
+/*\r
+ * The LINUX_SLL_ values for "sll_protocol"; these correspond to the\r
+ * ETH_P_ values on Linux, but are defined here so that they're\r
+ * available even on systems other than Linux.  We assume, for now,\r
+ * that the ETH_P_ values won't change in Linux; if they do, then:\r
+ *\r
+ *     if we don't translate them in "pcap-linux.c", capture files\r
+ *     won't necessarily be readable if captured on a system that\r
+ *     defines ETH_P_ values that don't match these values;\r
+ *\r
+ *     if we do translate them in "pcap-linux.c", that makes life\r
+ *     unpleasant for the BPF code generator, as the values you test\r
+ *     for in the kernel aren't the values that you test for when\r
+ *     reading a capture file, so the fixup code run on BPF programs\r
+ *     handed to the kernel ends up having to do more work.\r
+ *\r
+ * Add other values here as necessary, for handling packet types that\r
+ * might show up on non-Ethernet, non-802.x networks.  (Not all the ones\r
+ * in the Linux "if_ether.h" will, I suspect, actually show up in\r
+ * captures.)\r
+ */\r
+#define LINUX_SLL_P_802_3      0x0001  /* Novell 802.3 frames without 802.2 LLC header */\r
+#define LINUX_SLL_P_802_2      0x0004  /* 802.2 frames (not D/I/X Ethernet) */\r
+\r
+#endif\r