mirror of
https://github.com/apache/nuttx.git
synced 2026-05-31 14:27:37 +08:00
b-l475e-iot01a: Add configurations to support a star topology.
This commit is contained in:
@@ -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
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user