diff options
-rw-r--r-- | nuttx/include/nuttx/net/icmp.h | 4 | ||||
-rw-r--r-- | nuttx/include/nuttx/net/igmp.h | 2 | ||||
-rw-r--r-- | nuttx/include/nuttx/net/netdev.h | 3 | ||||
-rw-r--r-- | nuttx/include/nuttx/net/uip.h | 12 | ||||
-rw-r--r-- | nuttx/net/icmp/icmp_input.c | 19 | ||||
-rw-r--r-- | nuttx/net/icmp/icmp_ping.c | 35 | ||||
-rw-r--r-- | nuttx/net/icmp/icmp_poll.c | 6 | ||||
-rw-r--r-- | nuttx/net/icmp/icmp_send.c | 13 | ||||
-rw-r--r-- | nuttx/net/uip/uip.h | 17 | ||||
-rw-r--r-- | nuttx/net/uip/uip_chksum.c | 24 | ||||
-rw-r--r-- | nuttx/net/uip/uip_input.c | 5 | ||||
-rw-r--r-- | nuttx/net/uip/uip_poll.c | 3 |
12 files changed, 66 insertions, 77 deletions
diff --git a/nuttx/include/nuttx/net/icmp.h b/nuttx/include/nuttx/net/icmp.h index 87464c73f..42e67f3a6 100644 --- a/nuttx/include/nuttx/net/icmp.h +++ b/nuttx/include/nuttx/net/icmp.h @@ -110,7 +110,7 @@ /* The ICMP and IP headers */ -struct uip_icmpip_hdr +struct icmp_iphdr_s { #ifdef CONFIG_NET_IPv6 @@ -178,7 +178,7 @@ struct uip_icmpip_hdr */ #ifdef CONFIG_NET_STATISTICS -struct uip_icmp_stats_s +struct icmp_stats_s { uip_stats_t drop; /* Number of dropped ICMP packets */ uip_stats_t recv; /* Number of received ICMP packets */ diff --git a/nuttx/include/nuttx/net/igmp.h b/nuttx/include/nuttx/net/igmp.h index 8f6c4daf8..ea800f170 100644 --- a/nuttx/include/nuttx/net/igmp.h +++ b/nuttx/include/nuttx/net/igmp.h @@ -178,7 +178,7 @@ struct uip_igmphdr_s }; #ifdef CONFIG_NET_STATISTICS -struct uip_igmp_stats_s +struct igmp_stats_s { uint32_t length_errors; uint32_t chksum_errors; diff --git a/nuttx/include/nuttx/net/netdev.h b/nuttx/include/nuttx/net/netdev.h index 670351a40..7d9f6051e 100644 --- a/nuttx/include/nuttx/net/netdev.h +++ b/nuttx/include/nuttx/net/netdev.h @@ -389,7 +389,6 @@ uint16_t uip_ipchksum(struct uip_driver_s *dev); uint16_t tcp_chksum(struct uip_driver_s *dev); uint16_t udp_chksum(struct uip_driver_s *dev); -uint16_t uip_icmpchksum(struct uip_driver_s *dev, int len); +uint16_t icmp_chksum(struct uip_driver_s *dev, int len); #endif /* __INCLUDE_NUTTX_NET_NETDEV_H */ - diff --git a/nuttx/include/nuttx/net/uip.h b/nuttx/include/nuttx/net/uip.h index 8633a3511..00dffb159 100644 --- a/nuttx/include/nuttx/net/uip.h +++ b/nuttx/include/nuttx/net/uip.h @@ -249,7 +249,7 @@ struct uip_callback_s */ #ifdef CONFIG_NET_STATISTICS -struct uip_ip_stats_s +struct ip_stats_s { uip_stats_t drop; /* Number of dropped packets at the IP layer */ uip_stats_t recv; /* Number of received packets at the IP layer */ @@ -270,22 +270,22 @@ struct uip_ip_stats_s struct uip_stats { - struct uip_ip_stats_s ip; /* IP statistics */ + struct ip_stats_s ip; /* IP statistics */ #ifdef CONFIG_NET_ICMP - struct uip_icmp_stats_s icmp; /* ICMP statistics */ + struct icmp_stats_s icmp; /* ICMP statistics */ #endif #ifdef CONFIG_NET_IGMP - struct uip_igmp_stats_s igmp; /* IGMP statistics */ + struct igmp_stats_s igmp; /* IGMP statistics */ #endif #ifdef CONFIG_NET_TCP - struct tcp_stats_s tcp; /* TCP statistics */ + struct tcp_stats_s tcp; /* TCP statistics */ #endif #ifdef CONFIG_NET_UDP - struct udp_stats_s udp; /* UDP statistics */ + struct udp_stats_s udp; /* UDP statistics */ #endif }; #endif /* CONFIG_NET_STATISTICS */ diff --git a/nuttx/net/icmp/icmp_input.c b/nuttx/net/icmp/icmp_input.c index 94087b9ae..55557945b 100644 --- a/nuttx/net/icmp/icmp_input.c +++ b/nuttx/net/icmp/icmp_input.c @@ -2,7 +2,7 @@ * net/icmp/icmp_input.c * Handling incoming ICMP/ICMP6 input * - * Copyright (C) 2007-2009, 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2007-2009, 2012, 2014 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <gnutt@nuttx.org> * * Adapted for NuttX from logic in uIP which also has a BSD-like license: @@ -54,6 +54,7 @@ #include <nuttx/net/netdev.h> #include "uip/uip.h" +#include "icmp/icmp.h" #ifdef CONFIG_NET_ICMP @@ -61,7 +62,7 @@ * Pre-processor Definitions ****************************************************************************/ -#define ICMPBUF ((struct uip_icmpip_hdr *)&dev->d_buf[UIP_LLH_LEN]) +#define ICMPBUF ((struct icmp_iphdr_s *)&dev->d_buf[UIP_LLH_LEN]) /**************************************************************************** * Public Variables @@ -72,7 +73,7 @@ ****************************************************************************/ #ifdef CONFIG_NET_ICMP_PING -struct uip_callback_s *g_echocallback = NULL; +FAR struct uip_callback_s *g_echocallback = NULL; #endif /**************************************************************************** @@ -84,7 +85,7 @@ struct uip_callback_s *g_echocallback = NULL; ****************************************************************************/ /**************************************************************************** - * Name: uip_icmpinput + * Name: icmp_input * * Description: * Handle incoming ICMP/ICMP6 input @@ -101,9 +102,9 @@ struct uip_callback_s *g_echocallback = NULL; * ****************************************************************************/ -void uip_icmpinput(struct uip_driver_s *dev) +void icmp_input(FAR struct uip_driver_s *dev) { - struct uip_icmpip_hdr *picmp = ICMPBUF; + FAR struct icmp_iphdr_s *picmp = ICMPBUF; #ifdef CONFIG_NET_STATISTICS uip_stat.icmp.recv++; @@ -146,7 +147,7 @@ void uip_icmpinput(struct uip_driver_s *dev) /* The slow way... sum over the ICMP message */ picmp->icmpchksum = 0; - picmp->icmpchksum = ~uip_icmpchksum(dev, (((uint16_t)picmp->len[0] << 8) | (uint16_t)picmp->len[1]) - UIP_IPH_LEN); + picmp->icmpchksum = ~icmp_chksum(dev, (((uint16_t)picmp->len[0] << 8) | (uint16_t)picmp->len[1]) - UIP_IPH_LEN); if (picmp->icmpchksum == 0) { picmp->icmpchksum = 0xffff; @@ -235,7 +236,7 @@ typeerr: picmp->options[1] = 1; /* Options length, 1 = 8 bytes. */ memcpy(&(picmp->options[2]), &dev->d_mac, IFHWADDRLEN); picmp->icmpchksum = 0; - picmp->icmpchksum = ~uip_icmp6chksum(dev); + picmp->icmpchksum = ~icmp_6chksum(dev); } else { @@ -254,7 +255,7 @@ typeerr: uiphdr_ipaddr_copy(picmp->destipaddr, picmp->srcipaddr); uiphdr_ipaddr_copy(picmp->srcipaddr, &dev->d_ipaddr); picmp->icmpchksum = 0; - picmp->icmpchksum = ~uip_icmp6chksum(dev); + picmp->icmpchksum = ~icmp_6chksum(dev); } /* If an ICMP echo reply is received then there should also be diff --git a/nuttx/net/icmp/icmp_ping.c b/nuttx/net/icmp/icmp_ping.c index adcc3626c..549266e6a 100644 --- a/nuttx/net/icmp/icmp_ping.c +++ b/nuttx/net/icmp/icmp_ping.c @@ -1,7 +1,7 @@ /**************************************************************************** * net/icmp/icmp_ping.c * - * Copyright (C) 2008-2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2012, 2014 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <gnutt@nuttx.org> * * Redistribution and use in source and binary forms, with or without @@ -54,19 +54,21 @@ #include <nuttx/net/netdev.h> #include "uip/uip.h" -#include "../net.h" /* Should not include this! */ +#include "icmp/icmp.h" + +#include "net.h" /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ -#define ICMPBUF ((struct uip_icmpip_hdr *)&dev->d_buf[UIP_LLH_LEN]) -#define ICMPDAT (&dev->d_buf[UIP_LLH_LEN + sizeof(struct uip_icmpip_hdr)]) +#define ICMPBUF ((struct icmp_iphdr_s *)&dev->d_buf[UIP_LLH_LEN]) +#define ICMPDAT (&dev->d_buf[UIP_LLH_LEN + sizeof(struct icmp_iphdr_s)]) /* Allocate a new ICMP data callback */ -#define uip_icmpcallbackalloc() uip_callbackalloc(&g_echocallback) -#define uip_icmpcallbackfree(cb) uip_callbackfree(cb, &g_echocallback) +#define icmp_callbackalloc() uip_callbackalloc(&g_echocallback) +#define icmp_callbackfree(cb) uip_callbackfree(cb, &g_echocallback) /**************************************************************************** * Private Types @@ -116,7 +118,7 @@ struct icmp_ping_s * ****************************************************************************/ -static inline int ping_timeout(struct icmp_ping_s *pstate) +static inline int ping_timeout(FAR struct icmp_ping_s *pstate) { uint32_t elapsed = clock_systimer() - pstate->png_time; if (elapsed >= pstate->png_ticks) @@ -148,11 +150,11 @@ static inline int ping_timeout(struct icmp_ping_s *pstate) * ****************************************************************************/ -static uint16_t ping_interrupt(struct uip_driver_s *dev, void *conn, - void *pvpriv, uint16_t flags) +static uint16_t ping_interrupt(FAR struct uip_driver_s *dev, FAR void *conn, + FAR void *pvpriv, uint16_t flags) { - struct icmp_ping_s *pstate = (struct icmp_ping_s *)pvpriv; - uint8_t *ptr; + FAR struct icmp_ping_s *pstate = (struct icmp_ping_s *)pvpriv; + FAR uint8_t *ptr; int i; nllvdbg("flags: %04x\n", flags); @@ -166,7 +168,8 @@ static uint16_t ping_interrupt(struct uip_driver_s *dev, void *conn, if ((flags & UIP_ECHOREPLY) != 0 && conn != NULL) { - struct uip_icmpip_hdr *icmp = (struct uip_icmpip_hdr *)conn; + FAR struct icmp_iphdr_s *icmp = (FAR struct icmp_iphdr_s *)conn; + nlldbg("ECHO reply: id=%d seqno=%d\n", ntohs(icmp->id), ntohs(icmp->seqno)); @@ -202,7 +205,7 @@ static uint16_t ping_interrupt(struct uip_driver_s *dev, void *conn, (flags & UIP_NEWDATA) == 0 && /* No incoming data */ !pstate->png_sent) /* Request not sent */ { - struct uip_icmpip_hdr *picmp = ICMPBUF; + FAR struct icmp_iphdr_s *picmp = ICMPBUF; /* We can send the ECHO request now. * @@ -232,7 +235,7 @@ static uint16_t ping_interrupt(struct uip_driver_s *dev, void *conn, nlldbg("Send ECHO request: seqno=%d\n", pstate->png_seqno); dev->d_sndlen = pstate->png_datlen + 4; - uip_icmpsend(dev, &pstate->png_addr); + icmp_send(dev, &pstate->png_addr); pstate->png_sent = true; return flags; } @@ -342,7 +345,7 @@ int uip_ping(uip_ipaddr_t addr, uint16_t id, uint16_t seqno, /* Set up the callback */ - state.png_cb = uip_icmpcallbackalloc(); + state.png_cb = icmp_callbackalloc(); if (state.png_cb) { state.png_cb->flags = UIP_POLL|UIP_ECHOREPLY; @@ -364,7 +367,7 @@ int uip_ping(uip_ipaddr_t addr, uint16_t id, uint16_t seqno, nlldbg("Start time: 0x%08x seqno: %d\n", state.png_time, seqno); uip_lockedwait(&state.png_sem); - uip_icmpcallbackfree(state.png_cb); + icmp_callbackfree(state.png_cb); } uip_unlock(save); diff --git a/nuttx/net/icmp/icmp_poll.c b/nuttx/net/icmp/icmp_poll.c index 2d79255e7..208f933a3 100644 --- a/nuttx/net/icmp/icmp_poll.c +++ b/nuttx/net/icmp/icmp_poll.c @@ -1,7 +1,7 @@ /**************************************************************************** * net/icmp/icmp_poll.c * - * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2009, 2014 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <gnutt@nuttx.org> * * Redistribution and use in source and binary forms, with or without @@ -69,7 +69,7 @@ ****************************************************************************/ /**************************************************************************** - * Name: uip_icmppoll + * Name: icmp_poll * * Description: * Poll a UDP "connection" structure for availability of TX data @@ -85,7 +85,7 @@ * ****************************************************************************/ -void uip_icmppoll(struct uip_driver_s *dev) +void icmp_poll(FAR struct uip_driver_s *dev) { /* Setup for the application callback */ diff --git a/nuttx/net/icmp/icmp_send.c b/nuttx/net/icmp/icmp_send.c index 96df208ea..0f72b3b3e 100644 --- a/nuttx/net/icmp/icmp_send.c +++ b/nuttx/net/icmp/icmp_send.c @@ -1,7 +1,7 @@ /**************************************************************************** * net/icmp/icmp_send.c * - * Copyright (C) 2008-2010, 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2010, 2012, 2014 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <gnutt@nuttx.org> * * Redistribution and use in source and binary forms, with or without @@ -47,12 +47,13 @@ #include <nuttx/net/netdev.h> #include "uip/uip.h" +#include "icmp/icmp.h" /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ -#define ICMPBUF ((struct uip_icmpip_hdr *)&dev->d_buf[UIP_LLH_LEN]) +#define ICMPBUF ((struct icmp_iphdr_s *)&dev->d_buf[UIP_LLH_LEN]) /**************************************************************************** * Public Variables @@ -71,7 +72,7 @@ ****************************************************************************/ /**************************************************************************** - * Name: uip_icmpsend + * Name: icmp_send * * Description: * Setup to send an ICMP packet @@ -87,9 +88,9 @@ * ****************************************************************************/ -void uip_icmpsend(struct uip_driver_s *dev, uip_ipaddr_t *destaddr) +void icmp_send(FAR struct uip_driver_s *dev, FAR uip_ipaddr_t *destaddr) { - struct uip_icmpip_hdr *picmp = ICMPBUF; + FAR struct icmp_iphdr_s *picmp = ICMPBUF; if (dev->d_sndlen > 0) { @@ -149,7 +150,7 @@ void uip_icmpsend(struct uip_driver_s *dev, uip_ipaddr_t *destaddr) /* Calculate the ICMP checksum. */ picmp->icmpchksum = 0; - picmp->icmpchksum = ~(uip_icmpchksum(dev, dev->d_sndlen)); + picmp->icmpchksum = ~(icmp_chksum(dev, dev->d_sndlen)); if (picmp->icmpchksum == 0) { picmp->icmpchksum = 0xffff; diff --git a/nuttx/net/uip/uip.h b/nuttx/net/uip/uip.h index 5796ccadc..cbca8e650 100644 --- a/nuttx/net/uip/uip.h +++ b/nuttx/net/uip/uip.h @@ -125,23 +125,6 @@ void uip_pktpoll(struct uip_driver_s *dev, struct uip_pkt_conn *conn); #endif /* CONFIG_NET_PKT */ -#ifdef CONFIG_NET_ICMP -/* Defined in icmp_input.c **************************************************/ - -void uip_icmpinput(struct uip_driver_s *dev); - -#ifdef CONFIG_NET_ICMP_PING -/* Defined in icmp_poll.c ***************************************************/ - -void uip_icmppoll(struct uip_driver_s *dev); - -/* Defined in icmp_send.c ***************************************************/ - -void uip_icmpsend(struct uip_driver_s *dev, uip_ipaddr_t *destaddr); - -#endif /* CONFIG_NET_ICMP_PING */ -#endif /* CONFIG_NET_ICMP */ - #ifdef CONFIG_NET_IGMP /* Defined in igmp_init.c ***************************************************/ diff --git a/nuttx/net/uip/uip_chksum.c b/nuttx/net/uip/uip_chksum.c index 26b683314..3537b3a65 100644 --- a/nuttx/net/uip/uip_chksum.c +++ b/nuttx/net/uip/uip_chksum.c @@ -54,7 +54,7 @@ ****************************************************************************/ #define BUF ((struct uip_ip_hdr *)&dev->d_buf[UIP_LLH_LEN]) -#define ICMPBUF ((struct uip_icmpip_hdr *)&dev->d_buf[UIP_LLH_LEN]) +#define ICMPBUF ((struct icmp_iphdr_s *)&dev->d_buf[UIP_LLH_LEN]) /**************************************************************************** * Private Data @@ -65,7 +65,7 @@ ****************************************************************************/ #if !UIP_ARCH_CHKSUM -static uint16_t chksum(uint16_t sum, const uint8_t *data, uint16_t len) +static uint16_t chksum(uint16_t sum, FAR const uint8_t *data, uint16_t len) { uint16_t t; const uint8_t *dataptr; @@ -103,7 +103,7 @@ static uint16_t chksum(uint16_t sum, const uint8_t *data, uint16_t len) return sum; } -static uint16_t upper_layer_chksum(struct uip_driver_s *dev, uint8_t proto) +static uint16_t upper_layer_chksum(FAR struct uip_driver_s *dev, uint8_t proto) { struct uip_ip_hdr *pbuf = BUF; uint16_t upper_layer_len; @@ -133,7 +133,7 @@ static uint16_t upper_layer_chksum(struct uip_driver_s *dev, uint8_t proto) } #ifdef CONFIG_NET_IPv6 -static uint16_t uip_icmp6chksum(struct uip_driver_s *dev) +static uint16_t icmp_6chksum(FAR struct uip_driver_s *dev) { return upper_layer_chksum(dev, UIP_PROTO_ICMP6); } @@ -148,7 +148,7 @@ static uint16_t uip_icmp6chksum(struct uip_driver_s *dev) /* Calculate the Internet checksum over a buffer. */ #if !UIP_ARCH_ADD32 -static inline void uip_carry32(uint8_t *sum, uint16_t op16) +static inline void uip_carry32(FAR uint8_t *sum, uint16_t op16) { if (sum[2] < (op16 >> 8)) { @@ -173,7 +173,7 @@ static inline void uip_carry32(uint8_t *sum, uint16_t op16) } } -void uip_incr32(uint8_t *op32, uint16_t op16) +void uip_incr32(FAR uint8_t *op32, uint16_t op16) { op32[3] += (op16 & 0xff); op32[2] += (op16 >> 8); @@ -183,7 +183,7 @@ void uip_incr32(uint8_t *op32, uint16_t op16) #endif /* UIP_ARCH_ADD32 */ #if !UIP_ARCH_CHKSUM -uint16_t uip_chksum(uint16_t *data, uint16_t len) +uint16_t uip_chksum(FAR uint16_t *data, uint16_t len) { return htons(chksum(0, (uint8_t *)data, len)); } @@ -191,7 +191,7 @@ uint16_t uip_chksum(uint16_t *data, uint16_t len) /* Calculate the IP header checksum of the packet header in d_buf. */ #ifndef UIP_ARCH_IPCHKSUM -uint16_t uip_ipchksum(struct uip_driver_s *dev) +uint16_t uip_ipchksum(FAR struct uip_driver_s *dev) { uint16_t sum; @@ -202,7 +202,7 @@ uint16_t uip_ipchksum(struct uip_driver_s *dev) /* Calculate the TCP checksum of the packet in d_buf and d_appdata. */ -uint16_t tcp_chksum(struct uip_driver_s *dev) +uint16_t tcp_chksum(FAR struct uip_driver_s *dev) { return upper_layer_chksum(dev, UIP_PROTO_TCP); } @@ -210,7 +210,7 @@ uint16_t tcp_chksum(struct uip_driver_s *dev) /* Calculate the UDP checksum of the packet in d_buf and d_appdata. */ #ifdef CONFIG_NET_UDP_CHECKSUMS -uint16_t udp_chksum(struct uip_driver_s *dev) +uint16_t udp_chksum(FAR struct uip_driver_s *dev) { return upper_layer_chksum(dev, UIP_PROTO_UDP); } @@ -219,9 +219,9 @@ uint16_t udp_chksum(struct uip_driver_s *dev) /* Calculate the checksum of the ICMP message */ #if defined(CONFIG_NET_ICMP) && defined(CONFIG_NET_ICMP_PING) -uint16_t uip_icmpchksum(struct uip_driver_s *dev, int len) +uint16_t icmp_chksum(FAR struct uip_driver_s *dev, int len) { - struct uip_icmpip_hdr *picmp = ICMPBUF; + FAR struct icmp_iphdr_s *picmp = ICMPBUF; return uip_chksum((uint16_t*)&picmp->type, len); } #endif diff --git a/nuttx/net/uip/uip_input.c b/nuttx/net/uip/uip_input.c index c772eab85..544c94d9c 100644 --- a/nuttx/net/uip/uip_input.c +++ b/nuttx/net/uip/uip_input.c @@ -96,6 +96,7 @@ #include "uip/uip.h" #include "tcp/tcp.h" #include "udp/udp.h" +#include "icmp/icmp.h" /**************************************************************************** * Pre-processor Definitions @@ -436,7 +437,7 @@ int uip_input(struct uip_driver_s *dev) if (pbuf->proto == UIP_PROTO_ICMP) { nlldbg("Possible ping config packet received\n"); - uip_icmpinput(dev); + icmp_input(dev); goto drop; } else @@ -526,7 +527,7 @@ int uip_input(struct uip_driver_s *dev) #else case UIP_PROTO_ICMP6: /* ICMP6 input */ #endif - uip_icmpinput(dev); + icmp_input(dev); break; #endif diff --git a/nuttx/net/uip/uip_poll.c b/nuttx/net/uip/uip_poll.c index e8ed2dded..b5566441d 100644 --- a/nuttx/net/uip/uip_poll.c +++ b/nuttx/net/uip/uip_poll.c @@ -49,6 +49,7 @@ #include "uip/uip.h" #include "tcp/tcp.h" #include "udp/udp.h" +#include "icmp/icmp.h" /**************************************************************************** * Private Data @@ -112,7 +113,7 @@ static inline int uip_pollicmp(FAR struct uip_driver_s *dev, { /* Perform the UDP TX poll */ - uip_icmppoll(dev); + icmp_poll(dev); /* Call back into the driver */ |