From d7df165c45519826c44b444a3f669b251020ab2f Mon Sep 17 00:00:00 2001 From: Ouss4 Date: Fri, 3 Apr 2020 20:10:52 +0100 Subject: [PATCH] examples/udp: When a host PC is used, take its implementation of hton/ntoh functions. --- examples/tcpblaster/tcpblaster_netinit.c | 77 +++++++++++++----------- examples/udp/udp.h | 30 +++------ examples/udp/udp_cmdline.c | 31 ++++++---- examples/udp/udp_netinit.c | 72 ++++++++++++---------- examples/udpblaster/udpblaster.h | 2 +- 5 files changed, 109 insertions(+), 103 deletions(-) diff --git a/examples/tcpblaster/tcpblaster_netinit.c b/examples/tcpblaster/tcpblaster_netinit.c index 19127e5a5..de89fe2e0 100644 --- a/examples/tcpblaster/tcpblaster_netinit.c +++ b/examples/tcpblaster/tcpblaster_netinit.c @@ -72,45 +72,16 @@ !defined(CONFIG_NET_ICMPv6_AUTOCONF) /* Our host IPv6 address */ -static const uint16_t g_ipv6_hostaddr[8] = -{ - HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6ADDR_1), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6ADDR_2), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6ADDR_3), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6ADDR_4), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6ADDR_5), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6ADDR_6), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6ADDR_7), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6ADDR_8), -}; +static const uint16_t g_ipv6_hostaddr[8]; /* Default routine IPv6 address */ -static const uint16_t g_ipv6_draddr[8] = -{ - HTONS(CONFIG_EXAMPLES_TCPBLASTER_DRIPv6ADDR_1), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_DRIPv6ADDR_2), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_DRIPv6ADDR_3), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_DRIPv6ADDR_4), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_DRIPv6ADDR_5), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_DRIPv6ADDR_6), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_DRIPv6ADDR_7), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_DRIPv6ADDR_8), -}; +static const uint16_t g_ipv6_draddr[8]; /* IPv6 netmask */ -static const uint16_t g_ipv6_netmask[8] = -{ - HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6NETMASK_1), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6NETMASK_2), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6NETMASK_3), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6NETMASK_4), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6NETMASK_5), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6NETMASK_6), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6NETMASK_7), - HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6NETMASK_8), -}; +static const uint16_t g_ipv6_netmask[8]; + #endif /* CONFIG_EXAMPLES_TCPBLASTER_INIT && CONFIG_EXAMPLES_TCPBLASTER_IPv6 && !CONFIG_NET_ICMPv6_AUTOCONF */ /**************************************************************************** @@ -126,7 +97,45 @@ void tcpblaster_initialize(void) uint8_t mac[IFHWADDRLEN]; #endif -/* Many embedded network interfaces must have a software assigned MAC */ +#if defined(CONFIG_EXAMPLES_TCPBLASTER_INIT) && \ + defined(CONFIG_EXAMPLES_TCPBLASTER_IPv6) && \ + !defined(CONFIG_NET_ICMPv6_AUTOCONF) + /* Our host IPv6 address */ + + g_ipv6_hostaddr[0] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6ADDR_1); + g_ipv6_hostaddr[1] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6ADDR_2); + g_ipv6_hostaddr[2] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6ADDR_3); + g_ipv6_hostaddr[3] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6ADDR_4); + g_ipv6_hostaddr[4] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6ADDR_5); + g_ipv6_hostaddr[5] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6ADDR_6); + g_ipv6_hostaddr[6] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6ADDR_7); + g_ipv6_hostaddr[7] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6ADDR_8); + + /* Default routine IPv6 address */ + + g_ipv6_draddr[0] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_DRIPv6ADDR_1); + g_ipv6_draddr[1] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_DRIPv6ADDR_2); + g_ipv6_draddr[2] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_DRIPv6ADDR_3); + g_ipv6_draddr[3] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_DRIPv6ADDR_4); + g_ipv6_draddr[4] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_DRIPv6ADDR_5); + g_ipv6_draddr[5] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_DRIPv6ADDR_6); + g_ipv6_draddr[6] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_DRIPv6ADDR_7); + g_ipv6_draddr[7] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_DRIPv6ADDR_8); + + /* IPv6 netmask */ + + g_ipv6_netmask[0] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6NETMASK_1); + g_ipv6_netmask[1] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6NETMASK_2); + g_ipv6_netmask[2] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6NETMASK_3); + g_ipv6_netmask[3] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6NETMASK_4); + g_ipv6_netmask[4] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6NETMASK_5); + g_ipv6_netmask[5] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6NETMASK_6); + g_ipv6_netmask[6] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6NETMASK_7); + g_ipv6_netmask[7] = HTONS(CONFIG_EXAMPLES_TCPBLASTER_IPv6NETMASK_8); + +#endif + + /* Many embedded network interfaces must have a software assigned MAC */ #ifdef CONFIG_EXAMPLES_TCPBLASTER_NOMAC mac[0] = 0x00; diff --git a/examples/udp/udp.h b/examples/udp/udp.h index 82145a42c..594b63717 100644 --- a/examples/udp/udp.h +++ b/examples/udp/udp.h @@ -52,32 +52,18 @@ ****************************************************************************/ #ifdef EXAMPLES_UDP_HOST -/* HTONS/L macros are unique to uIP-based networks */ +/* HTONS/L macros are unique to NuttX */ -# ifdef CONFIG_ENDIAN_BIG -# undef HTONS -# define HTONS(ns) (ns) -# undef HTONL -# define HTONL(nl) (nl) -# else -# undef HTONS -# define HTONS(ns) \ - (unsigned short) \ - (((((unsigned short)(ns)) & 0x00ff) << 8) | \ - ((((unsigned short)(ns)) >> 8) & 0x00ff)) -# undef HTONL -# define HTONL(nl) \ - (unsigned long) \ - (((((unsigned long)(nl)) & 0x000000ffUL) << 24) | \ - ((((unsigned long)(nl)) & 0x0000ff00UL) << 8) | \ - ((((unsigned long)(nl)) & 0x00ff0000UL) >> 8) | \ - ((((unsigned long)(nl)) & 0xff000000UL) >> 24)) -# endif +# undef HTONS +# undef HTONL +# define HTONS(ns) htons(ns) +# define HTONL(nl) htonl(nl) # undef NTOHS -# define NTOHS(hs) HTONS(hs) # undef NTOHL -# define NTOHL(hl) HTONL(hl) +# define NTOHS(hs) ntohs(hs) +# define NTOHL(hl) ntohl(hl) + # define FAR #endif diff --git a/examples/udp/udp_cmdline.c b/examples/udp/udp_cmdline.c index 8645b972d..1c6cffa62 100644 --- a/examples/udp/udp_cmdline.c +++ b/examples/udp/udp_cmdline.c @@ -50,19 +50,9 @@ ****************************************************************************/ #ifdef CONFIG_EXAMPLES_UDP_IPv6 -uint16_t g_udpserver_ipv6[8] = -{ - HTONS(CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_1), - HTONS(CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_2), - HTONS(CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_3), - HTONS(CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_4), - HTONS(CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_5), - HTONS(CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_6), - HTONS(CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_7), - HTONS(CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_8) -}; +uint16_t g_udpserver_ipv6[8]; #else -uint32_t g_udpserver_ipv4 = HTONL(CONFIG_EXAMPLES_UDP_SERVERIP); +uint32_t g_udpserver_ipv4; #endif /**************************************************************************** @@ -89,8 +79,23 @@ static void show_usage(FAR const char *progname) void udp_cmdline(int argc, char **argv) { + /* Init the default IP address. */ + +#ifdef CONFIG_EXAMPLES_UDP_IPv6 + g_udpserver_ipv6[0] = HTONS(CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_1); + g_udpserver_ipv6[1] = HTONS(CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_2); + g_udpserver_ipv6[2] = HTONS(CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_3); + g_udpserver_ipv6[3] = HTONS(CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_4); + g_udpserver_ipv6[4] = HTONS(CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_5); + g_udpserver_ipv6[5] = HTONS(CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_6); + g_udpserver_ipv6[6] = HTONS(CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_7); + g_udpserver_ipv6[7] = HTONS(CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_8); +#else + g_udpserver_ipv4 = HTONL(CONFIG_EXAMPLES_UDP_SERVERIP); +#endif + /* Currently only a single command line option is supported: The server - * IP address. + * IP address. Used to override default. */ if (argc == 2) diff --git a/examples/udp/udp_netinit.c b/examples/udp/udp_netinit.c index 2d7e76beb..c1551172b 100644 --- a/examples/udp/udp_netinit.c +++ b/examples/udp/udp_netinit.c @@ -69,45 +69,16 @@ #if defined(CONFIG_EXAMPLES_UDP_IPv6) && !defined(CONFIG_NET_ICMPv6_AUTOCONF) /* Our host IPv6 address */ -static const uint16_t g_ipv6_hostaddr[8] = -{ - HTONS(CONFIG_EXAMPLES_UDP_IPv6ADDR_1), - HTONS(CONFIG_EXAMPLES_UDP_IPv6ADDR_2), - HTONS(CONFIG_EXAMPLES_UDP_IPv6ADDR_3), - HTONS(CONFIG_EXAMPLES_UDP_IPv6ADDR_4), - HTONS(CONFIG_EXAMPLES_UDP_IPv6ADDR_5), - HTONS(CONFIG_EXAMPLES_UDP_IPv6ADDR_6), - HTONS(CONFIG_EXAMPLES_UDP_IPv6ADDR_7), - HTONS(CONFIG_EXAMPLES_UDP_IPv6ADDR_8), -}; +static const uint16_t g_ipv6_hostaddr[8]; /* Default routine IPv6 address */ -static const uint16_t g_ipv6_draddr[8] = -{ - HTONS(CONFIG_EXAMPLES_UDP_DRIPv6ADDR_1), - HTONS(CONFIG_EXAMPLES_UDP_DRIPv6ADDR_2), - HTONS(CONFIG_EXAMPLES_UDP_DRIPv6ADDR_3), - HTONS(CONFIG_EXAMPLES_UDP_DRIPv6ADDR_4), - HTONS(CONFIG_EXAMPLES_UDP_DRIPv6ADDR_5), - HTONS(CONFIG_EXAMPLES_UDP_DRIPv6ADDR_6), - HTONS(CONFIG_EXAMPLES_UDP_DRIPv6ADDR_7), - HTONS(CONFIG_EXAMPLES_UDP_DRIPv6ADDR_8), -}; +static const uint16_t g_ipv6_draddr[8]; /* IPv6 netmask */ -static const uint16_t g_ipv6_netmask[8] = -{ - HTONS(CONFIG_EXAMPLES_UDP_IPv6NETMASK_1), - HTONS(CONFIG_EXAMPLES_UDP_IPv6NETMASK_2), - HTONS(CONFIG_EXAMPLES_UDP_IPv6NETMASK_3), - HTONS(CONFIG_EXAMPLES_UDP_IPv6NETMASK_4), - HTONS(CONFIG_EXAMPLES_UDP_IPv6NETMASK_5), - HTONS(CONFIG_EXAMPLES_UDP_IPv6NETMASK_6), - HTONS(CONFIG_EXAMPLES_UDP_IPv6NETMASK_7), - HTONS(CONFIG_EXAMPLES_UDP_IPv6NETMASK_8), -}; +static const uint16_t g_ipv6_netmask[8]; + #endif /* CONFIG_EXAMPLES_UDP_IPv6 && !CONFIG_NET_ICMPv6_AUTOCONF */ static bool g_initialized; @@ -122,6 +93,41 @@ static bool g_initialized; int udp_netinit(void) { +#if defined(CONFIG_EXAMPLES_UDP_IPv6) && !defined(CONFIG_NET_ICMPv6_AUTOCONF) + /* Our host IPv6 address */ + + g_ipv6_hostaddr[0] = HTONS(CONFIG_EXAMPLES_UDP_IPv6ADDR_1); + g_ipv6_hostaddr[1] = HTONS(CONFIG_EXAMPLES_UDP_IPv6ADDR_2); + g_ipv6_hostaddr[2] = HTONS(CONFIG_EXAMPLES_UDP_IPv6ADDR_3); + g_ipv6_hostaddr[3] = HTONS(CONFIG_EXAMPLES_UDP_IPv6ADDR_4); + g_ipv6_hostaddr[4] = HTONS(CONFIG_EXAMPLES_UDP_IPv6ADDR_5); + g_ipv6_hostaddr[5] = HTONS(CONFIG_EXAMPLES_UDP_IPv6ADDR_6); + g_ipv6_hostaddr[6] = HTONS(CONFIG_EXAMPLES_UDP_IPv6ADDR_7); + g_ipv6_hostaddr[7] = HTONS(CONFIG_EXAMPLES_UDP_IPv6ADDR_8); + + /* Default routine IPv6 address */ + + g_ipv6_draddr[0] = HTONS(CONFIG_EXAMPLES_UDP_DRIPv6ADDR_1); + g_ipv6_draddr[1] = HTONS(CONFIG_EXAMPLES_UDP_DRIPv6ADDR_2); + g_ipv6_draddr[2] = HTONS(CONFIG_EXAMPLES_UDP_DRIPv6ADDR_3); + g_ipv6_draddr[3] = HTONS(CONFIG_EXAMPLES_UDP_DRIPv6ADDR_4); + g_ipv6_draddr[4] = HTONS(CONFIG_EXAMPLES_UDP_DRIPv6ADDR_5); + g_ipv6_draddr[5] = HTONS(CONFIG_EXAMPLES_UDP_DRIPv6ADDR_6); + g_ipv6_draddr[6] = HTONS(CONFIG_EXAMPLES_UDP_DRIPv6ADDR_7); + g_ipv6_draddr[7] = HTONS(CONFIG_EXAMPLES_UDP_DRIPv6ADDR_8); + + /* IPv6 netmask */ + + g_ipv6_netmask[0] = HTONS(CONFIG_EXAMPLES_UDP_IPv6NETMASK_1); + g_ipv6_netmask[1] = HTONS(CONFIG_EXAMPLES_UDP_IPv6NETMASK_2); + g_ipv6_netmask[2] = HTONS(CONFIG_EXAMPLES_UDP_IPv6NETMASK_3); + g_ipv6_netmask[3] = HTONS(CONFIG_EXAMPLES_UDP_IPv6NETMASK_4); + g_ipv6_netmask[4] = HTONS(CONFIG_EXAMPLES_UDP_IPv6NETMASK_5); + g_ipv6_netmask[5] = HTONS(CONFIG_EXAMPLES_UDP_IPv6NETMASK_6); + g_ipv6_netmask[6] = HTONS(CONFIG_EXAMPLES_UDP_IPv6NETMASK_7); + g_ipv6_netmask[7] = HTONS(CONFIG_EXAMPLES_UDP_IPv6NETMASK_8); +#endif /* CONFIG_EXAMPLES_UDP_IPv6 && !CONFIG_NET_ICMPv6_AUTOCONF */ + if (!g_initialized) { #ifdef CONFIG_EXAMPLES_UDP_IPv6 diff --git a/examples/udpblaster/udpblaster.h b/examples/udpblaster/udpblaster.h index 6a4568fa2..68012d44e 100644 --- a/examples/udpblaster/udpblaster.h +++ b/examples/udpblaster/udpblaster.h @@ -49,7 +49,7 @@ ****************************************************************************/ #ifdef UDPBLASTER_HOST -/* HTONS/L macros are unique to uIP */ +/* HTONS/L macros are unique to NuttX */ # undef HTONS # undef HTONL