diff options
author | Drashna Jaelre <drashna@live.com> | 2019-08-02 14:02:40 -0700 |
---|---|---|
committer | Florian Didron <fdidron@users.noreply.github.com> | 2019-10-01 10:21:12 +0900 |
commit | 9f184ab5da8be4a0d11e28a9e5fc78ed64bf678f (patch) | |
tree | 65535fef5627256c2f96c5e30c148f2ecd314821 /lib/lufa/Demos/Device/LowLevel/RNDISEthernet/Lib/ARP.c | |
parent | d5212f4739795842e0b7c4f1f9a911c7717524c4 (diff) |
Fix the LUFA lib to use a submodule instead of just files (#6245)
* Remove LUFA files
* Update descriptions for newer version of LUFA
* Create PR6245.md
* Fix CDC(Serial) type errors
* Fix missed merge conflict for AUDIO_DTYPE_CSInterface
Diffstat (limited to 'lib/lufa/Demos/Device/LowLevel/RNDISEthernet/Lib/ARP.c')
-rw-r--r-- | lib/lufa/Demos/Device/LowLevel/RNDISEthernet/Lib/ARP.c | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/lib/lufa/Demos/Device/LowLevel/RNDISEthernet/Lib/ARP.c b/lib/lufa/Demos/Device/LowLevel/RNDISEthernet/Lib/ARP.c deleted file mode 100644 index 24008705c1..0000000000 --- a/lib/lufa/Demos/Device/LowLevel/RNDISEthernet/Lib/ARP.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2017 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 disclaims 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 - * - * Address Resolution Protocol (ARP) packet handling routines. This protocol handles the - * conversion of physical MAC addresses to protocol IP addresses between the host and the - * device. - */ - -#include "ARP.h" - -/** Processes an ARP packet inside an Ethernet frame, and writes the appropriate response - * to the output Ethernet frame if the host is requesting the IP or MAC address of the - * virtual server device on the network. - * - * \param[in] InDataStart Pointer to the start of the incoming packet's ARP header - * \param[out] OutDataStart Pointer to the start of the outgoing packet's ARP header - * - * \return The number of bytes written to the out Ethernet frame if any, NO_RESPONSE otherwise - */ -int16_t ARP_ProcessARPPacket(void* InDataStart, - void* OutDataStart) -{ - DecodeARPHeader(InDataStart); - - ARP_Header_t* ARPHeaderIN = (ARP_Header_t*)InDataStart; - ARP_Header_t* ARPHeaderOUT = (ARP_Header_t*)OutDataStart; - - /* Ensure that the ARP request is a IPv4 request packet */ - if ((SwapEndian_16(ARPHeaderIN->ProtocolType) == ETHERTYPE_IPV4) && - (SwapEndian_16(ARPHeaderIN->Operation) == ARP_OPERATION_REQUEST)) - { - /* If the ARP packet is requesting the MAC or IP of the virtual webserver, return the response */ - if (IP_COMPARE(&ARPHeaderIN->TPA, &ServerIPAddress) || - MAC_COMPARE(&ARPHeaderIN->THA, &ServerMACAddress)) - { - /* Fill out the ARP response header */ - ARPHeaderOUT->HardwareType = ARPHeaderIN->HardwareType; - ARPHeaderOUT->ProtocolType = ARPHeaderIN->ProtocolType; - ARPHeaderOUT->HLEN = ARPHeaderIN->HLEN; - ARPHeaderOUT->PLEN = ARPHeaderIN->PLEN; - ARPHeaderOUT->Operation = SwapEndian_16(ARP_OPERATION_REPLY); - - /* Copy over the sender MAC/IP to the target fields for the response */ - ARPHeaderOUT->THA = ARPHeaderIN->SHA; - ARPHeaderOUT->TPA = ARPHeaderIN->SPA; - - /* Copy over the new sender MAC/IP - MAC and IP addresses of the virtual webserver */ - ARPHeaderOUT->SHA = ServerMACAddress; - ARPHeaderOUT->SPA = ServerIPAddress; - - /* Return the size of the response so far */ - return sizeof(ARP_Header_t); - } - } - - return NO_RESPONSE; -} - |