summaryrefslogtreecommitdiffstats
path: root/private/inc/sys/snet/eth_prot.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--private/inc/sys/snet/eth_prot.h253
1 files changed, 253 insertions, 0 deletions
diff --git a/private/inc/sys/snet/eth_prot.h b/private/inc/sys/snet/eth_prot.h
new file mode 100644
index 000000000..7599f7ad8
--- /dev/null
+++ b/private/inc/sys/snet/eth_prot.h
@@ -0,0 +1,253 @@
+/*++
+
+Copyright (c) 1991 Microsoft Corporation
+
+Module Name:
+
+ eth_prot.h
+
+Abstract:
+
+ Definitions for the SNDIS upper protocol interface.
+
+Author:
+
+ Mike Massa (mikemas) Jan 31, 1992
+
+Revision History:
+
+ Who When What
+ -------- -------- ----------------------------------------------
+ mikemas 01-31-92 created
+
+Notes:
+
+--*/
+
+/******************************************************************
+ *
+ * SpiderTCP Interface Primitives
+ *
+ * Copyright (c) 1988 Spider Systems Limited
+ *
+ * This Source Code is furnished under Licence, and may not be
+ * copied or distributed without express written agreement.
+ *
+ * All rights reserved.
+ *
+ * Written by Nick Felisiak, Ian Heavens, Peter Reid,
+ * Gavin Shearer, Mark Valentine
+ *
+ * ETH_PROTO.H
+ *
+ * Ethernet Streams proto primitives for TCP/IP on V.3 Streams
+ *
+ ******************************************************************/
+
+/*
+ * /usr/projects/spare/PBRAIN/SCCS/pbrainG/dev/src/include/sys/snet/0/s.eth_proto.h
+ * @(#)eth_proto.h 1.9
+ *
+ * Last delta created 11:03:25 10/29/90
+ * This file extracted 08:53:41 7/10/91
+ */
+
+#ifdef GENERICE
+
+/*
+ * Primitive type values.
+ */
+
+#define DL_TYPE ETH_TYPE /* ethernet registration (old style) */
+#define ETH_TYPE 'R' /* ethernet registration */
+#define ETH_PARAMS 'P' /* ethernet parameters */
+/*efine ETH_PACKET 'p' /* ethernet packet */
+#define ETH_TX 't' /* packet for transmission */
+#define ETH_RX 'r' /* incoming packet */
+
+/*
+ * Ethernet Type registration.
+ */
+
+#define dl_type eth_type
+#define dl_lwb lwb
+#define dl_upb upb
+#define dl_ethaddr ethaddr
+#define dl_frgsz frgsz
+#define S_DL_TYPE S_ETH_TYPE
+
+typedef struct eth_type {
+ uint8 prim_type; /* i.e. ETH_TYPE */
+ uint8 aux_type; /* unused in Ethernet Driver */
+ uint16 pad; /* compatibility with previous interface */
+ uint16 lwb; /* lower bound of type range */
+ uint16 upb; /* upper bound of type range */
+ uint8 ethaddr[6]; /* ethernet address */
+ uint16 frgsz; /* max. packet size on net */
+} S_ETH_TYPE;
+
+typedef struct eth_params {
+ uint8 prim_type; /* i.e. ETH_PARAMS */
+ uint8 aux_type; /* unused in Ethernet Driver */
+ uint16 pad; /* compatibility with previous interface */
+ uint8 ethaddr[6]; /* ethernet address */
+ uint16 frgsz; /* max. packet size on net */
+} S_ETH_PARAMS;
+
+/*
+ * Packet header data.
+ */
+
+typedef struct eth_packet {
+ uint8 prim_type; /* i.e. ETH_PACKET */
+ uint8 aux_type; /* unused in Ethernet Driver */
+ uint16 pad; /* compatibility with previous interface */
+ uint16 eth_type; /* ethernet type field */
+ uint8 eth_src[6]; /* source ethernet address */
+ uint8 eth_dst[6]; /* destination ethernet address */
+} S_ETH_PACKET;
+
+typedef struct eth_rx {
+ uint8 prim_type; /* i.e. ETH_RX */
+ uint8 aux_type; /* unused in Ethernet Driver */
+ uint16 pad; /* compatibility with previous interface */
+ uint16 eth_type; /* ethernet type field */
+ uint8 eth_src[6]; /* source ethernet address */
+} S_ETH_RX;
+
+typedef struct eth_tx {
+ uint8 prim_type; /* i.e. ETH_TX */
+ uint8 aux_type; /* unused in Ethernet Driver */
+ uint16 pad; /* compatibility with previous interface */
+ uint16 eth_type; /* ethernet type field */
+ uint8 eth_dst[6]; /* destination ethernet address */
+} S_ETH_TX;
+
+/*
+ * Generic ethernet protocol primitive
+ */
+
+typedef union eth_proto
+{
+ uint8 type; /* variant tag */
+ struct eth_type etype; /* if type == ETH_TYPE */
+ struct eth_params eparm; /* if type == ETH_PARAMS */
+ struct eth_rx erx; /* if type == ETH_RX */
+ struct eth_tx etx; /* if type == ETH_TX */
+} S_ETH_PROTO;
+
+#else /* GENERICE */
+
+/* type range we want to receive from ethernet */
+typedef struct dl_type {
+ int prim_type;
+ unsigned short dl_lwb;
+ unsigned short dl_upb;
+} S_DL_TYPE;
+
+/* M_PROTO Message primitives */
+
+#define DL_RX 4 /* arp receives from eth */
+#define DL_TYPE 5 /* arp send type field to eth */
+#ifdef PROJ4
+#define ETH_TX 1 /* packet for transmission */
+#define ETH_RX 2 /* incoming packet */
+#else
+#define ETH_TX 6 /* packet for transmission */
+#define ETH_RX 7 /* incoming packet */
+#endif
+
+/*
+ * M_PROTO message formats
+ */
+#ifdef EMD
+struct eth_tx {
+ char dl_dst[6];
+ char dl_src[6];
+ short dl_type;
+};
+#else
+struct eth_tx {
+ int prim_type;
+ short dl_type;
+ char dl_dst[6];
+};
+#endif
+
+struct eth_rx {
+ int prim_type;
+ struct ethmessage *eth_msg;
+};
+
+
+union eth_proto {
+ int type;
+ struct eth_tx eth_tx;
+ struct eth_rx eth_rx;
+ struct dl_type dl_type;
+};
+
+/*
+ * errors generated
+ */
+#define EFRGSZ 1
+#define EDLTYPE 2
+#define EPRIM 3
+#define EBUF 4
+#define EMSG 5
+
+/*
+ * arp receives datalink pkt from eth
+ */
+typedef struct dl_rx {
+ int prim_type;
+ unsigned short dl_type;
+ char dl_src[6];
+} S_DL_RX;
+
+#endif /* GENERICE */
+
+
+#ifdef PROJ4
+
+/*
+ * PROJ4 Attachment values
+ */
+#define A_LAN 9
+#define A_IP 20
+#define A_UDP 23
+#define A_ARP 24
+
+#define ATTACH 13 /* attach to driver */
+
+/*
+ * ATTACH struct - for communication with the lower
+ * Driver
+ */
+typedef struct attach {
+ int prim_type;
+ unsigned short fromid;
+ unsigned short toid;
+ unsigned int fromvers;
+ unsigned int tovers;
+ int result;
+ unsigned short type_upb0;
+ unsigned short type_lwb0;
+ unsigned short type_upb1;
+ unsigned short type_lwb1;
+ unsigned short type_upb2;
+ unsigned short type_lwb2;
+ unsigned short type_upb3;
+ unsigned short type_lwb3;
+} S_ATTACH;
+
+#define DATAL_TX ETH_TX
+#define S_DATAL_TX struct eth_tx
+#define datal_tx eth_tx
+
+/*
+ * Hardware types
+ */
+
+#define HW_ETHERNET 1
+#endif