Fix compile problen with CONFIG_NET_ARP_IPIN

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4188 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2011-12-15 22:21:32 +00:00
parent c094e68c14
commit 4b3282078c
7 changed files with 53 additions and 28 deletions

View File

@ -2267,3 +2267,4 @@
Broke out separate drivers to handle the very different RTC implementations
in the STM32 F1 and F4 family.
* arch/arm/srcm/stm32/stm32f10xxx_rtc.c: STM32 F4 RTC is functional (12/14/2011)
* net/uip-arp.c: Fix compilation issue with CONFIG_NET_ARP_IPIN

View File

@ -718,9 +718,13 @@ CONFIG_MMCSD_HAVECARDDETECT=n
# CONFIG_NET_PINGADDRCONF - Use "ping" packet for setting IP address
# CONFIG_NET_STATISTICS - uIP statistics on or off
# CONFIG_NET_RECEIVE_WINDOW - The size of the advertised receiver's window
# CONFIG_NET_ARPTAB_SIZE - The size of the ARP table
# CONFIG_NET_BROADCAST - Broadcast support
# CONFIG_NET_FWCACHE_SIZE - number of packets to remember when looking for duplicates
# CONFIG_NET_ARPTAB_SIZE - The size of the ARP table
# CONFIG_NET_ARP_IPIN - Harvest IP/MAC address mappings from the ARP table
# from incoming IP packets.
# CONFIG_NET_MULTICAST - Outgoing multi-cast address support
# CONFIG_NET_FWCACHE_SIZE - number of packets to remember when
# looking for duplicates
#
CONFIG_NET=y
CONFIG_NET_NOINTS=n
@ -743,8 +747,10 @@ CONFIG_NET_ICMP_PING=n
#CONFIG_NET_PINGADDRCONF=0
CONFIG_NET_STATISTICS=n
#CONFIG_NET_RECEIVE_WINDOW=
#CONFIG_NET_ARPTAB_SIZE=8
CONFIG_NET_BROADCAST=y
#CONFIG_NET_ARPTAB_SIZE=8
CONFIG_NET_ARP_IPIN=n
CONFIG_NET_MULTICAST=n
#CONFIG_NET_FWCACHE_SIZE=2
#

View File

@ -718,9 +718,13 @@ CONFIG_MMCSD_HAVECARDDETECT=n
# CONFIG_NET_PINGADDRCONF - Use "ping" packet for setting IP address
# CONFIG_NET_STATISTICS - uIP statistics on or off
# CONFIG_NET_RECEIVE_WINDOW - The size of the advertised receiver's window
# CONFIG_NET_ARPTAB_SIZE - The size of the ARP table
# CONFIG_NET_BROADCAST - Broadcast support
# CONFIG_NET_FWCACHE_SIZE - number of packets to remember when looking for duplicates
# CONFIG_NET_ARPTAB_SIZE - The size of the ARP table
# CONFIG_NET_ARP_IPIN - Harvest IP/MAC address mappings from the ARP table
# from incoming IP packets.
# CONFIG_NET_MULTICAST - Outgoing multi-cast address support
# CONFIG_NET_FWCACHE_SIZE - number of packets to remember when
# looking for duplicates
#
CONFIG_NET=y
CONFIG_NET_NOINTS=n
@ -743,8 +747,10 @@ CONFIG_NET_ICMP_PING=n
#CONFIG_NET_PINGADDRCONF=0
CONFIG_NET_STATISTICS=n
#CONFIG_NET_RECEIVE_WINDOW=
#CONFIG_NET_ARPTAB_SIZE=8
CONFIG_NET_BROADCAST=n
#CONFIG_NET_ARPTAB_SIZE=8
CONFIG_NET_ARP_IPIN=n
CONFIG_NET_MULTICAST=n
#CONFIG_NET_FWCACHE_SIZE=2
#

View File

@ -723,9 +723,13 @@ CONFIG_MMCSD_HAVECARDDETECT=n
# CONFIG_NET_PINGADDRCONF - Use "ping" packet for setting IP address
# CONFIG_NET_STATISTICS - uIP statistics on or off
# CONFIG_NET_RECEIVE_WINDOW - The size of the advertised receiver's window
# CONFIG_NET_ARPTAB_SIZE - The size of the ARP table
# CONFIG_NET_BROADCAST - Broadcast support
# CONFIG_NET_FWCACHE_SIZE - number of packets to remember when looking for duplicates
# CONFIG_NET_ARPTAB_SIZE - The size of the ARP table
# CONFIG_NET_ARP_IPIN - Harvest IP/MAC address mappings from the ARP table
# from incoming IP packets.
# CONFIG_NET_MULTICAST - Outgoing multi-cast address support
# CONFIG_NET_FWCACHE_SIZE - number of packets to remember when
# looking for duplicates
#
CONFIG_NET=y
CONFIG_NET_NOINTS=n
@ -748,8 +752,10 @@ CONFIG_NET_ICMP_PING=y
#CONFIG_NET_PINGADDRCONF=0
CONFIG_NET_STATISTICS=y
#CONFIG_NET_RECEIVE_WINDOW=
#CONFIG_NET_ARPTAB_SIZE=8
CONFIG_NET_BROADCAST=n
#CONFIG_NET_ARPTAB_SIZE=8
CONFIG_NET_ARP_IPIN=n
CONFIG_NET_MULTICAST=n
#CONFIG_NET_FWCACHE_SIZE=2
#

View File

@ -681,9 +681,13 @@ CONFIG_MMCSD_HAVECARDDETECT=n
# CONFIG_NET_PINGADDRCONF - Use "ping" packet for setting IP address
# CONFIG_NET_STATISTICS - uIP statistics on or off
# CONFIG_NET_RECEIVE_WINDOW - The size of the advertised receiver's window
# CONFIG_NET_ARPTAB_SIZE - The size of the ARP table
# CONFIG_NET_BROADCAST - Broadcast support
# CONFIG_NET_FWCACHE_SIZE - number of packets to remember when looking for duplicates
# CONFIG_NET_ARPTAB_SIZE - The size of the ARP table
# CONFIG_NET_ARP_IPIN - Harvest IP/MAC address mappings from the ARP table
# from incoming IP packets.
# CONFIG_NET_MULTICAST - Outgoing multi-cast address support
# CONFIG_NET_FWCACHE_SIZE - number of packets to remember when
# looking for duplicates
#
CONFIG_NET=n
CONFIG_NET_NOINTS=n
@ -703,8 +707,10 @@ CONFIG_NET_ICMP_PING=n
#CONFIG_NET_PINGADDRCONF=0
CONFIG_NET_STATISTICS=y
#CONFIG_NET_RECEIVE_WINDOW=
#CONFIG_NET_ARPTAB_SIZE=8
CONFIG_NET_BROADCAST=n
#CONFIG_NET_ARPTAB_SIZE=8
CONFIG_NET_ARP_IPIN=n
CONFIG_NET_MULTICAST=n
#CONFIG_NET_FWCACHE_SIZE=2
#

View File

@ -51,7 +51,7 @@
#include <nuttx/clock.h>
#include <net/uip/uip-arch.h>
#ifndef CONFIG_NET_ARP_IPIN
#ifdef CONFIG_NET_ARP_IPIN
# include <net/uip/uip-arp.h>
#endif

View File

@ -3,7 +3,7 @@
* Implementation of the ARP Address Resolution Protocol.
*
* Copyright (C) 2007-2011 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Based on uIP which also has a BSD style license:
*
@ -81,8 +81,8 @@
#define RASIZE 4 /* Size of ROUTER ALERT */
#define ETHBUF ((struct uip_eth_hdr *)&dev->d_buf[0])
#define ARPBUF ((struct arp_hdr *)&dev->d_buf[UIP_LLH_LEN])
#define IPBUF ((struct ethip_hdr *)&dev->d_buf[UIP_LLH_LEN])
#define ARPBUF ((struct arp_hdr_s *)&dev->d_buf[UIP_LLH_LEN])
#define IPBUF ((struct arp_iphdr_s *)&dev->d_buf[UIP_LLH_LEN])
/****************************************************************************
* Private Types
@ -90,7 +90,7 @@
/* ARP header -- Size 28 bytes */
struct arp_hdr
struct arp_hdr_s
{
uint16_t ah_hwtype; /* 16-bit Hardware type (Ethernet=0x001) */
uint16_t ah_protocol; /* 16-bit Protocol type (IP=0x0800) */
@ -105,7 +105,7 @@ struct arp_hdr
/* IP header -- Size 20 or 24 bytes */
struct ethip_hdr
struct arp_iphdr_s
{
uint8_t eh_vhl; /* 8-bit Version (4) and header length (5 or 6) */
uint8_t eh_tos; /* 8-bit Type of service (e.g., 6=TCP) */
@ -155,7 +155,7 @@ static const uint8_t g_multicast_ethaddr[3] = {0x01, 0x00, 0x5e};
****************************************************************************/
#if defined(CONFIG_NET_DUMPARP) && defined(CONFIG_DEBUG)
static void uip_arp_dump(struct arp_hdr *arp)
static void uip_arp_dump(struct arp_hdr_s *arp)
{
nlldbg(" HW type: %04x Protocol: %04x\n",
arp->ah_hwtype, arp->ah_protocol);\
@ -200,10 +200,10 @@ void uip_arp_ipin(struct uip_driver_s *dev)
* packet comes from a host on the local network.
*/
srcipaddr = uip_ip4addr_conv(IPBUF->srcipaddr);
if (!uip_ipaddr_maskcmp(ipaddr, dev->d_ipaddr, dev->d_netmask))
srcipaddr = uip_ip4addr_conv(IPBUF->eh_srcipaddr);
if (!uip_ipaddr_maskcmp(srcipaddr, dev->d_ipaddr, dev->d_netmask))
{
uip_arp_update(IPBUF->srcipaddr, ETHBUF->src);
uip_arp_update(IPBUF->eh_srcipaddr, ETHBUF->src);
}
}
#endif /* CONFIG_NET_ARP_IPIN */
@ -231,10 +231,10 @@ void uip_arp_ipin(struct uip_driver_s *dev)
void uip_arp_arpin(struct uip_driver_s *dev)
{
struct arp_hdr *parp = ARPBUF;
struct arp_hdr_s *parp = ARPBUF;
in_addr_t ipaddr;
if (dev->d_len < (sizeof(struct arp_hdr) + UIP_LLH_LEN))
if (dev->d_len < (sizeof(struct arp_hdr_s) + UIP_LLH_LEN))
{
nlldbg("Too small\n");
dev->d_len = 0;
@ -273,7 +273,7 @@ void uip_arp_arpin(struct uip_driver_s *dev)
uip_arp_dump(parp);
peth->type = HTONS(UIP_ETHTYPE_ARP);
dev->d_len = sizeof(struct arp_hdr) + UIP_LLH_LEN;
dev->d_len = sizeof(struct arp_hdr_s) + UIP_LLH_LEN;
}
break;
@ -320,9 +320,9 @@ void uip_arp_arpin(struct uip_driver_s *dev)
void uip_arp_out(struct uip_driver_s *dev)
{
const struct arp_entry *tabptr = NULL;
struct arp_hdr *parp = ARPBUF;
struct arp_hdr_s *parp = ARPBUF;
struct uip_eth_hdr *peth = ETHBUF;
struct ethip_hdr *pip = IPBUF;
struct arp_iphdr_s *pip = IPBUF;
in_addr_t ipaddr;
in_addr_t destipaddr;
@ -411,7 +411,7 @@ void uip_arp_out(struct uip_driver_s *dev)
uip_arp_dump(parp);
peth->type = HTONS(UIP_ETHTYPE_ARP);
dev->d_len = sizeof(struct arp_hdr) + UIP_LLH_LEN;
dev->d_len = sizeof(struct arp_hdr_s) + UIP_LLH_LEN;
return;
}