b-l475e-iot01a: Add configurations to support a star topology.

This commit is contained in:
Gregory Nutt
2017-08-05 07:53:55 -06:00
parent c07daace32
commit c2fbef2062
6 changed files with 285 additions and 9 deletions
+87 -1
View File
@@ -392,6 +392,12 @@ Configuration sub-directories
the UDP test is now fully functional. CRC filtering still must be
disabled.
2017-08-05: Add the Telnet client problem. Verified HC06 tests with
no debug output; verified Telnet seessions between two spirit nodes.
At this point everything seems functional, but somewhat reliable.
Sometimes things seem to initialize in a bad state.
Test Matrix:
The following configurations have been tested successfully (with
CRC disabled):
@@ -399,10 +405,90 @@ Configuration sub-directories
TEST DATE
COMPRESSION UDP TCP Telnet
----------- ----- ----- ------
hc06 08/04 08/04 --- (CRC disabled)
hc06 08/04 08/04 08/05 (CRC disabled)
hc1 --- --- ---
ipv6 --- --- ---
----------- ----- ----- ------
Other configuration options have not been specifically addressed
(such non-compressable ports, non-MAC based IPv6 addresses, etc.)
spirit-starhub and spirit-starpoint
These two configurations implement hub and and star endpoint in a
star topology. Both configurations derive from the spirit-6lowpan
configuration and most of the notes there apply here as well.
1. You must must have three b-l475e-iot01a boards in order to run
these tests: One that serves as the star hub and at least two
star endpoints.
2. The star point configuration differs from the primarily in the
spirit-6lowpan in following is also set:
CONFIG_NET_STAR=y
CONFIG_NET_STARPOINT=y
The CONFIG_NET_STARPOINT selection informs the endpoint that it
must send all frames to the hub of the star, rather than directly
to the recipient.
The star hub configuration, on the other hand, differs from the
spirit-6lowpan in these fundamental ways:
CONFIG_NET_STAR=y
CONFIG_NET_STARHUB=y
CONFIG_NET_IPFORWARD=y
The CONFIG_NET_IPFORWARD selection informs the hub that if it
receives any packets that are not destined for the hub, it should
forward those packets appropriately.
3. TCP and UDP Tests: The same TCP and UDP tests as described for
the spirit-6lowpan coniguration are supported on the star
endpoints, but NOT on the star hub. Therefore, all network testing
is between endpoints with the hub acting, well, only like a hub.
Each node in the configuration must be manually initialized.
Ideally, this would be automatically initialized with software logic
and configuration data in non-volatilbe memory. The the procedure
is manual in this example. These are the basic initialization
steps with E1 and E2 representing the two star endpoints and C
representing the star hub:
C: nsh> ifconfig wpan0 hw 34 <-- Sets hub node address
C: nsh> ifup wpan0 <-- Brings up the network on the hub
C: nsh> telnetd <-- Starts the Telnet daemon on the hub
C: nsh> ifconfig <-- To get the IP address of the hub
E1: nsh> ifconfig wpan0 hw 37 <-- Sets E1 endpoint node address
E1: nsh> ifup wpan0 <-- Brings up the network on the E1 node
E1: nsh> telnetd <-- Starts the Telnet daemon on the E1 node
E1: nsh> ifconfig <-- To get the IP address of E1 endpoint
E2: nsh> ifconfig wpan0 hw 38 <-- Sets E2 endpoint node address
E2: nsh> ifup wpan0 <-- Brings up the network on the E2 node
E2: nsh> telnetd <-- Starts the Telnet daemon on the E2 node
E2: nsh> ifconfig <-- To get the IP address of E2 endpoint
The modified usage of the TCP test is show below:
E1: nsh> tcpserver &
E2: nsh> tcpclient <server-ip> &
Where <server-ip> is the IP address of the E1 endpoint.
Similarly for the UDP test:
E1: nsh> udpserver &
E2: nsh> udpclient <server-ip> &
Telenet sessions may be initiated from the any node to any other node:
XX: nsh> telnet <server-ip> <-- Runs the Telnet client on any node XX
Where <server-ip> is the IP address of either the E1 or E2 endpoints
or of the star hub.
STATUS:
2017-08-05: Configurations added.
@@ -46,6 +46,7 @@ CONFIG_MM_REGIONS=2
CONFIG_NET_6LOWPAN_FRAMELEN=96
CONFIG_NET_6LOWPAN=y
CONFIG_NET_BROADCAST=y
CONFIG_NET_HOSTNAME="B-L475E-IOT01A"
CONFIG_NET_IPv6=y
CONFIG_NET_SOCKOPTS=y
CONFIG_NET_STATISTICS=y
@@ -93,6 +94,7 @@ CONFIG_START_DAY=2
CONFIG_START_MONTH=8
CONFIG_STM32L4_SPI3=y
CONFIG_STM32L4_USART1=y
CONFIG_SYSTEM_TELNET_CLIENT=y
CONFIG_USART1_SERIAL_CONSOLE=y
CONFIG_USER_ENTRYPOINT="nsh_main"
CONFIG_WIRELESS_PKTRADIO=y
@@ -0,0 +1,86 @@
# CONFIG_NET_ETHERNET is not set
# CONFIG_NET_IPv4 is not set
# CONFIG_NSH_ARGCAT is not set
# CONFIG_NSH_CMDOPT_DF_H is not set
# CONFIG_NSH_CMDOPT_HEXDUMP is not set
# CONFIG_NSH_CMDPARMS is not set
CONFIG_ARCH_BOARD_B_L475E_IOT01A=y
CONFIG_ARCH_BOARD="b-l475e-iot01a"
CONFIG_ARCH_CHIP_STM32L4=y
CONFIG_ARCH_CHIP_STM32L475VG=y
CONFIG_ARCH_STACKDUMP=y
CONFIG_ARCH="arm"
CONFIG_BOARD_LOOPSPERMSEC=8025
CONFIG_BUILTIN=y
CONFIG_DRIVERS_WIRELESS=y
CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y
CONFIG_EXAMPLES_NSH=y
CONFIG_FS_PROCFS=y
CONFIG_HAVE_CXX=y
CONFIG_HAVE_CXXINITIALIZE=y
CONFIG_INTELHEX_BINARY=y
CONFIG_IOB_BUFSIZE=96
CONFIG_IOB_NBUFFERS=32
CONFIG_IOB_NCHAINS=16
CONFIG_LIBM=y
CONFIG_MAX_TASKS=16
CONFIG_MAX_WDOGPARMS=2
CONFIG_MM_REGIONS=2
CONFIG_NET_6LOWPAN_FRAMELEN=96
CONFIG_NET_6LOWPAN=y
CONFIG_NET_BROADCAST=y
CONFIG_NET_HOSTNAME="B-L475E-IOT01A"
CONFIG_NET_IPv6=y
CONFIG_NET_SOCKOPTS=y
CONFIG_NET_STAR=y
CONFIG_NET_STARHUB=y
CONFIG_NET_STATISTICS=y
CONFIG_NET_TCP_WRITE_BUFFERS=y
CONFIG_NET_TCP=y
CONFIG_NET_TCPBACKLOG=y
CONFIG_NET_UDP=y
CONFIG_NET=y
CONFIG_NETDEV_LATEINIT=y
CONFIG_NETDEV_STATISTICS=y
CONFIG_NETDEV_WIRELESS_IOCTL=y
CONFIG_NETDEVICES=y
CONFIG_NETUTILS_TELNETD=y
CONFIG_NFILE_DESCRIPTORS=8
CONFIG_NFILE_STREAMS=8
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_DISABLE_GET=y
CONFIG_NSH_DISABLE_PUT=y
CONFIG_NSH_DISABLE_WGET=y
CONFIG_NSH_FILEIOSIZE=512
CONFIG_NSH_LINELEN=64
CONFIG_NSH_NETLOCAL=y
CONFIG_NSH_NOMAC=y
CONFIG_NSH_READLINE=y
CONFIG_PREALLOC_MQ_MSGS=4
CONFIG_PREALLOC_TIMERS=4
CONFIG_PREALLOC_WDOGS=16
CONFIG_RAM_SIZE=114688
CONFIG_RAM_START=0x20000000
CONFIG_RAW_BINARY=y
CONFIG_RR_INTERVAL=200
CONFIG_SCHED_HPWORK=y
CONFIG_SCHED_HPWORKPERIOD=50000
CONFIG_SCHED_HPWORKPRIORITY=192
CONFIG_SCHED_LPWORK=y
CONFIG_SCHED_LPWORKPRIORITY=160
CONFIG_SCHED_WAITPID=y
CONFIG_SDCLONE_DISABLE=y
CONFIG_SPIRIT_BROADCAST=y
CONFIG_SPIRIT_CRCDISABLE=y
CONFIG_SPIRIT_MULTICAST=y
CONFIG_SPIRIT_NETDEV=y
CONFIG_START_DAY=2
CONFIG_START_MONTH=8
CONFIG_STM32L4_SPI3=y
CONFIG_STM32L4_USART1=y
CONFIG_SYSTEM_TELNET_CLIENT=y
CONFIG_USART1_SERIAL_CONSOLE=y
CONFIG_USER_ENTRYPOINT="nsh_main"
CONFIG_WIRELESS_PKTRADIO=y
CONFIG_WIRELESS=y
@@ -0,0 +1,102 @@
# CONFIG_NET_ETHERNET is not set
# CONFIG_NET_IPv4 is not set
# CONFIG_NSH_ARGCAT is not set
# CONFIG_NSH_CMDOPT_DF_H is not set
# CONFIG_NSH_CMDOPT_HEXDUMP is not set
# CONFIG_NSH_CMDPARMS is not set
CONFIG_ARCH_BOARD_B_L475E_IOT01A=y
CONFIG_ARCH_BOARD="b-l475e-iot01a"
CONFIG_ARCH_CHIP_STM32L4=y
CONFIG_ARCH_CHIP_STM32L475VG=y
CONFIG_ARCH_STACKDUMP=y
CONFIG_ARCH="arm"
CONFIG_BOARD_LOOPSPERMSEC=8025
CONFIG_BUILTIN=y
CONFIG_DRIVERS_WIRELESS=y
CONFIG_EXAMPLES_NETTEST_DEVNAME="wpan0"
CONFIG_EXAMPLES_NETTEST_SERVER_PORTNO=61616
CONFIG_EXAMPLES_NETTEST_SERVERIPv6ADDR_1=0xfe80
CONFIG_EXAMPLES_NETTEST_SERVERIPv6ADDR_6=0x00ff
CONFIG_EXAMPLES_NETTEST_SERVERIPv6ADDR_7=0xfe00
CONFIG_EXAMPLES_NETTEST_SERVERIPv6ADDR_8=0xa900
CONFIG_EXAMPLES_NETTEST_TARGET2=y
CONFIG_EXAMPLES_NETTEST=y
CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y
CONFIG_EXAMPLES_NSH=y
CONFIG_EXAMPLES_UDP_CLIENT_PORTNO=61617
CONFIG_EXAMPLES_UDP_DEVNAME="wpan0"
CONFIG_EXAMPLES_UDP_SERVER_PORTNO=61616
CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_1=0xfe80
CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_6=0x00ff
CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_7=0xfe00
CONFIG_EXAMPLES_UDP_SERVERIPv6ADDR_8=0x1000
CONFIG_EXAMPLES_UDP_TARGET2=y
CONFIG_EXAMPLES_UDP=y
CONFIG_FS_PROCFS=y
CONFIG_HAVE_CXX=y
CONFIG_HAVE_CXXINITIALIZE=y
CONFIG_INTELHEX_BINARY=y
CONFIG_IOB_BUFSIZE=96
CONFIG_IOB_NBUFFERS=32
CONFIG_IOB_NCHAINS=16
CONFIG_LIBM=y
CONFIG_MAX_TASKS=16
CONFIG_MAX_WDOGPARMS=2
CONFIG_MM_REGIONS=2
CONFIG_NET_6LOWPAN_FRAMELEN=96
CONFIG_NET_6LOWPAN=y
CONFIG_NET_BROADCAST=y
CONFIG_NET_HOSTNAME="B-L475E-IOT01A"
CONFIG_NET_IPv6=y
CONFIG_NET_SOCKOPTS=y
CONFIG_NET_STAR=y
CONFIG_NET_STATISTICS=y
CONFIG_NET_TCP_WRITE_BUFFERS=y
CONFIG_NET_TCP=y
CONFIG_NET_TCPBACKLOG=y
CONFIG_NET_UDP=y
CONFIG_NET=y
CONFIG_NETDEV_LATEINIT=y
CONFIG_NETDEV_STATISTICS=y
CONFIG_NETDEV_WIRELESS_IOCTL=y
CONFIG_NETDEVICES=y
CONFIG_NETUTILS_TELNETD=y
CONFIG_NFILE_DESCRIPTORS=8
CONFIG_NFILE_STREAMS=8
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_DISABLE_GET=y
CONFIG_NSH_DISABLE_PUT=y
CONFIG_NSH_DISABLE_WGET=y
CONFIG_NSH_FILEIOSIZE=512
CONFIG_NSH_LINELEN=64
CONFIG_NSH_NETLOCAL=y
CONFIG_NSH_NOMAC=y
CONFIG_NSH_READLINE=y
CONFIG_PREALLOC_MQ_MSGS=4
CONFIG_PREALLOC_TIMERS=4
CONFIG_PREALLOC_WDOGS=16
CONFIG_RAM_SIZE=114688
CONFIG_RAM_START=0x20000000
CONFIG_RAW_BINARY=y
CONFIG_RR_INTERVAL=200
CONFIG_SCHED_HPWORK=y
CONFIG_SCHED_HPWORKPERIOD=50000
CONFIG_SCHED_HPWORKPRIORITY=192
CONFIG_SCHED_LPWORK=y
CONFIG_SCHED_LPWORKPRIORITY=160
CONFIG_SCHED_WAITPID=y
CONFIG_SDCLONE_DISABLE=y
CONFIG_SPIRIT_BROADCAST=y
CONFIG_SPIRIT_CRCDISABLE=y
CONFIG_SPIRIT_MULTICAST=y
CONFIG_SPIRIT_NETDEV=y
CONFIG_START_DAY=2
CONFIG_START_MONTH=8
CONFIG_STM32L4_SPI3=y
CONFIG_STM32L4_USART1=y
CONFIG_SYSTEM_TELNET_CLIENT=y
CONFIG_USART1_SERIAL_CONSOLE=y
CONFIG_USER_ENTRYPOINT="nsh_main"
CONFIG_WIRELESS_PKTRADIO=y
CONFIG_WIRELESS=y
+6 -6
View File
@@ -380,8 +380,8 @@ Configurations
NOTES:
1. You must must have two clicker2-stm32 boards each with an MRF24J40
click board in order to run these tests.
1. You must have two clicker2-stm32 boards each with an MRF24J40 click
board in order to run these tests.
2. This configuration differs from the mrf24j40-mac configuration in
that this configuration, like the usbnsh configuration, uses a USB
@@ -593,8 +593,8 @@ Configurations
star topology. Both configurations derive from the mrf24j40-6lowpan
configuration and most of the notes there apply here as well.
1. You must must have three clicker2-stm32 boards each with an MRF24J40
click board in order to run these tests: One that servers as the
1. You must have three clicker2-stm32 boards each with an MRF24J40
click board in order to run these tests: One that serves as the
star hub and at least two star endpoints.
2. The star point configuration differs from the primarily in the
@@ -662,7 +662,7 @@ Configurations
C: nsh> telnet <server-ip> <-- Runs the Telnet client
Where <server-ip> is the IP address of either the E1 or I2 endpoints.
Where <server-ip> is the IP address of either the E1 or E2 endpoints.
STATUS:
2017-06-29: Configurations added. Initial testing indicates that
@@ -684,7 +684,7 @@ Configurations
This required a change to assure that the destination IPv6 address
is not elided in the case of the star endpoint configuration. After
some additional fixes for byte ordering in 16-bit and 64-bit
compressed IPv6 addresses, the all tests are working as expectedd:
compressed IPv6 addresses, then all tests are working as expected:
TCP, UDP, Telnet.
nsh:
@@ -1822,7 +1822,7 @@ static int spirit_ioctl(FAR struct net_driver_s *dev, int cmd,
* Calculate the MAC header length given the frame meta-data.
*
* Input parameters:
* netdev - The networkd device that will mediate the MAC interface
* netdev - The network device that will mediate the MAC interface
* meta - Obfuscated metadata structure needed to create the radio
* MAC header
*
@@ -1854,7 +1854,7 @@ static int spirit_get_mhrlen(FAR struct sixlowpan_driver_s *netdev,
* 6LoWPAN radio packets.
*
* Input parameters:
* netdev - The networkd device that will mediate the MAC interface
* netdev - The network device that will mediate the MAC interface
* meta - Obfuscated metadata structure needed to create the radio
* MAC header
* framelist - Head of a list of frames to be transferred.