mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-31 05:12:33 +01:00 
			
		
		
		
	 85e85befc4
			
		
	
	
		85e85befc4
		
	
	
	
	
		
			
			Add endianness information to the class driver and core structure definitions. Move out the unused Ethernet_Frame_Info_t structure definition to the RNDIS device demos where it is needed.
		
			
				
	
	
		
			93 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|              LUFA Library
 | |
|      Copyright (C) Dean Camera, 2011.
 | |
| 
 | |
|   dean [at] fourwalledcubicle [dot] com
 | |
|            www.lufa-lib.org
 | |
| */
 | |
| 
 | |
| /*
 | |
|   Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 | |
| 
 | |
|   Permission to use, copy, modify, distribute, and sell this
 | |
|   software and its documentation for any purpose is hereby granted
 | |
|   without fee, provided that the above copyright notice appear in
 | |
|   all copies and that both that the copyright notice and this
 | |
|   permission notice and warranty disclaimer appear in supporting
 | |
|   documentation, and that the name of the author not be used in
 | |
|   advertising or publicity pertaining to distribution of the
 | |
|   software without specific, written prior permission.
 | |
| 
 | |
|   The author disclaim all warranties with regard to this
 | |
|   software, including all implied warranties of merchantability
 | |
|   and fitness.  In no event shall the author be liable for any
 | |
|   special, indirect or consequential damages or any damages
 | |
|   whatsoever resulting from loss of use, data or profits, whether
 | |
|   in an action of contract, negligence or other tortious action,
 | |
|   arising out of or in connection with the use or performance of
 | |
|   this software.
 | |
| */
 | |
| 
 | |
| /** \file
 | |
|  *
 | |
|  *  General Ethernet protocol constants and type defines, for use by
 | |
|  *  all network protocol portions of the TCP/IP stack.
 | |
|  */
 | |
| 
 | |
| #ifndef _ETHERNET_PROTOCOLS_H_
 | |
| #define _ETHERNET_PROTOCOLS_H_
 | |
| 
 | |
| 	/* Includes: */
 | |
| 		#include <LUFA/Drivers/USB/Class/RNDIS.h>
 | |
| 
 | |
| 	/* Macros: */
 | |
| 		#define ETHERTYPE_IPV4                   0x0800
 | |
| 		#define ETHERTYPE_ARP                    0x0806
 | |
| 		#define ETHERTYPE_RARP                   0x8035
 | |
| 		#define ETHERTYPE_APPLETALK              0x809b
 | |
| 		#define ETHERTYPE_APPLETALKARP           0x80f3
 | |
| 		#define ETHERTYPE_IEEE8021Q              0x8100
 | |
| 		#define ETHERTYPE_NOVELLIPX              0x8137
 | |
| 		#define ETHERTYPE_NOVELL                 0x8138
 | |
| 		#define ETHERTYPE_IPV6                   0x86DD
 | |
| 		#define ETHERTYPE_COBRANET               0x8819
 | |
| 		#define ETHERTYPE_PROVIDERBRIDGING       0x88a8
 | |
| 		#define ETHERTYPE_MPLSUNICAST            0x8847
 | |
| 		#define ETHERTYPE_MPLSMULTICAST          0x8848
 | |
| 		#define ETHERTYPE_PPPoEDISCOVERY         0x8863
 | |
| 		#define ETHERTYPE_PPPoESESSION           0x8864
 | |
| 		#define ETHERTYPE_EAPOVERLAN             0x888E
 | |
| 		#define ETHERTYPE_HYPERSCSI              0x889A
 | |
| 		#define ETHERTYPE_ATAOVERETHERNET        0x88A2
 | |
| 		#define ETHERTYPE_ETHERCAT               0x88A4
 | |
| 		#define ETHERTYPE_SERCOSIII              0x88CD
 | |
| 		#define ETHERTYPE_CESoE                  0x88D8
 | |
| 		#define ETHERTYPE_MACSECURITY            0x88E5
 | |
| 		#define ETHERTYPE_FIBRECHANNEL           0x8906
 | |
| 		#define ETHERTYPE_QINQ                   0x9100
 | |
| 		#define ETHERTYPE_VLLT                   0xCAFE
 | |
| 
 | |
| 		#define PROTOCOL_ICMP                    1
 | |
| 		#define PROTOCOL_IGMP                    2
 | |
| 		#define PROTOCOL_TCP                     6
 | |
| 		#define PROTOCOL_UDP                     17
 | |
| 		#define PROTOCOL_OSPF                    89
 | |
| 		#define PROTOCOL_SCTP                    132
 | |
| 
 | |
| 	/* Type Defines: */
 | |
| 		/** Type define for an Ethernet frame buffer data and information structure. */
 | |
| 		typedef struct
 | |
| 		{
 | |
| 			uint8_t  FrameData[ETHERNET_FRAME_SIZE_MAX]; /**< Ethernet frame contents. */
 | |
| 			uint16_t FrameLength; /**< Length in bytes of the Ethernet frame stored in the buffer. */
 | |
| 		} Ethernet_Frame_Info_t;
 | |
| 
 | |
| 		/** Type define for a protocol IP address of a device on a network. */
 | |
| 		typedef struct
 | |
| 		{
 | |
| 			uint8_t       Octets[4]; /**< Individual bytes of an IP address */
 | |
| 		} IP_Address_t;
 | |
| 
 | |
| #endif
 | |
| 
 |