examples/udp: When a host PC is used, take its implementation of hton/ntoh functions.

This commit is contained in:
Ouss4 2020-04-03 20:10:52 +01:00 committed by patacongo
parent dd95e35787
commit d7df165c45
5 changed files with 109 additions and 103 deletions

View File

@ -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;

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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