94a0d92b54
Squashed commit of the following: apps/nshlib: Remove NSH initialization. Now uses the common apps/netutils/netinit logic (which was cloned from nshlib to begin with). apps/netutils/netinit: Clone network initialization logic from NSH to this directory so that it can be available for general use.
541 lines
18 KiB
Plaintext
541 lines
18 KiB
Plaintext
#
|
|
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
#
|
|
|
|
menuconfig NETUTILS_NETINIT
|
|
bool "Network initialization"
|
|
default n
|
|
depends on NET
|
|
---help---
|
|
This option enables/disables all support for common network initialization.
|
|
|
|
if NETUTILS_NETINIT
|
|
|
|
config NETINIT_NETLOCAL
|
|
bool "Local network initialization"
|
|
default n
|
|
---help---
|
|
If this option is selected, then this logic will only initialize the local
|
|
attributes of the network: The MAC address if needed and any IP
|
|
addresses as needed. More importantly, it will not do the following:
|
|
|
|
- It will not bring the network up. That can be done later with the
|
|
an ifup() call.
|
|
- It will not associate any wireless devices to an access point.
|
|
- It will not attempt to obtain an IP address if DHCPC is selected.
|
|
This may be done later from the apps/system/dhcpc 'renew' command.
|
|
- It will not start the NTPC daemon. This may be done later from
|
|
the with the apps/system/ntpc 'ntpcstart' command.
|
|
|
|
This option permits you to divide the network configuration into two
|
|
parts: The local configuration of the network device and the dynamic
|
|
configuration of the device in the network. This may be important in
|
|
an environment when, for example, you need to manually scan for
|
|
available access points and associate the wireless driver with an
|
|
access point.
|
|
|
|
config NETINIT_THREAD
|
|
bool "Network initialization thread"
|
|
default n
|
|
depends on !DISABLE_PTHREAD && !NETINIT_NETLOCAL
|
|
---help---
|
|
NuttX is brought up through a series of sequential initialization
|
|
steps. This includes networking. If the network is available on
|
|
reset, then there is really no issue. Negotiating the link will
|
|
take only a second or so and the delay to application startup is
|
|
normally acceptable.
|
|
|
|
But if there is no network connected, then the start-up delay can
|
|
be very long depending upon things like the particular PHY, driver
|
|
timeout delay times and number of retries. A failed negotiation
|
|
can potentially take a very long time, perhaps as much as a
|
|
minute... Long enough that you might think that the board would
|
|
never come up!
|
|
|
|
One solution is enabled by this option. If NETINIT_THREAD
|
|
is selected, the network bring-up will occur in parallel with
|
|
the application on a separate thread. In this case, the appliation
|
|
will start immediately with the network becoming available some time
|
|
later (if if all). This thread will terminate once it successfully
|
|
initializes the network
|
|
|
|
NOTES: If no network is connected, the network bring-up will fail
|
|
and the network initialization thread will simply exit. There are
|
|
no retries and no mechanism to know if the network initialization
|
|
was successful. Furthermore, there is currently no support for
|
|
detecting loss of network connection. Lots of things to do!
|
|
|
|
if NETINIT_THREAD
|
|
|
|
config NETINIT_MONITOR
|
|
bool "Monitor link state"
|
|
default n
|
|
depends on ARCH_PHY_INTERRUPT && NETDEV_PHY_IOCTL && NET_UDP && !DISABLE_SIGNALS
|
|
---help---
|
|
By default the net initialization thread will bring-up the network
|
|
then exit, freeing all of the resources that it required. This is a
|
|
good behavior for systems with limited memory.
|
|
|
|
If this option is selected, however, then the network initialization
|
|
thread will persist forever; it will monitor the network status. In
|
|
the event that the network goes down (for example, if a cable is
|
|
removed), then the thread will monitor the link status and
|
|
attempt to bring the network back up. In this case the resources
|
|
required for network initialization are never released.
|
|
|
|
if NETINIT_MONITOR
|
|
|
|
config NETINIT_SIGNO
|
|
int "Notification signal number"
|
|
default 18
|
|
---help---
|
|
The network monitor logic will receive signals when there is any
|
|
change in the link status. This setting may be used to customize
|
|
that signal number in order to avoid conflicts.
|
|
|
|
config NETINIT_RETRYMSEC
|
|
int "Network bring-up retry period (msec)"
|
|
default 2000
|
|
---help---
|
|
When the network is down, the initialization thread will periodically
|
|
try to bring the network up. This can be a time consuming operation
|
|
so is done only periodically with that period specified by this
|
|
selection in milliseconds.
|
|
|
|
endif # NETINIT_MONITOR
|
|
|
|
config NETINIT_THREAD_STACKSIZE
|
|
int "Network initialization thread stack size"
|
|
default 1568
|
|
|
|
config NETINIT_THREAD_PRIORITY
|
|
int "Network initialization thread priority"
|
|
default 80
|
|
---help---
|
|
This should be set to a priority lower than most tasks. The network
|
|
PHY polling is CPU intensive and can interfere with the usability of
|
|
of threads competing for CPU bandwidth.
|
|
|
|
endif # NETINIT_THREAD
|
|
|
|
config NETINIT_DEBUG
|
|
bool "Network init debug"
|
|
default n
|
|
depends on DEBUG_FEATURES
|
|
---help---
|
|
Normally debug output is controlled by DEBUG_NET. However, that
|
|
will generate a LOT of debug output, especially if CONFIG_DEBUG_INFO is
|
|
also selected. This option is intended to force vervose debug
|
|
output from the network initialization logic even if CONFIG_DEBUG_NET
|
|
or CONFIG_DEBUG_INFO are not selected. This allows for focused, unit-
|
|
level debug of the network initialization logic.
|
|
|
|
# No IP address if 6LOWPAN selected; but Ethernet has precedence.
|
|
|
|
menu "IP Address Configuration"
|
|
depends on NET_ETHERNET || !NET_6LOWPAN
|
|
|
|
config NETINIT_DHCPC
|
|
bool "Use DHCP to get IP address"
|
|
default n
|
|
depends on NETUTILS_DHCPC
|
|
---help---
|
|
Obtain the IP address via DHCP.
|
|
|
|
Per RFC2131 (p. 9), the DHCP client must be prepared to receive DHCP
|
|
messages of up to 576 bytes (excluding Ethernet, IP, or UDP headers and FCS).
|
|
|
|
if NET_IPv4
|
|
|
|
comment "IPv4 Addresses"
|
|
|
|
config NETINIT_IPADDR
|
|
hex "Target IPv4 address"
|
|
default 0x0a000002
|
|
depends on !NETINIT_DHCPC
|
|
---help---
|
|
If NETINIT_DHCPC is NOT set, then the static IP address must be provided.
|
|
This is a 32-bit integer value in host order. So, as an example,
|
|
0x0a000002 would be 10.0.0.2.
|
|
|
|
config NETINIT_DRIPADDR
|
|
hex "Router IPv4 address"
|
|
default 0x0a000001
|
|
---help---
|
|
Default router IP address (aka, Gateway). This is a 32-bit integer
|
|
value in host order. So, as an example, 0x0a000001 would be 10.0.0.1.
|
|
|
|
config NETINIT_NETMASK
|
|
hex "IPv4 Network mask"
|
|
default 0xffffff00
|
|
---help---
|
|
Network mask. This is a 32-bit integer value in host order. So, as
|
|
an example, 0xffffff00 would be 255.255.255.0.
|
|
|
|
endif # NET_IPv4
|
|
|
|
if NET_IPv6 && !NET_ICMPv6_AUTOCONF
|
|
|
|
comment "Target IPv6 address"
|
|
|
|
config NETINIT_IPv6ADDR_1
|
|
hex "[0]"
|
|
default 0xfc00
|
|
range 0x0 0xffff
|
|
---help---
|
|
If NET_ICMPv6_AUTOCONF is NOT set, then the static IP address must be
|
|
provided. This is a 16-bit integer value in host order. Each of the
|
|
eight values forming the full IP address must be specified
|
|
individually. This is the first of the 8-values. The default for
|
|
all eight values is fc00::2.
|
|
|
|
config NETINIT_IPv6ADDR_2
|
|
hex "[1]"
|
|
default 0x0000
|
|
range 0x0 0xffff
|
|
---help---
|
|
If NET_ICMPv6_AUTOCONF is NOT set, then the static IP address must be
|
|
provided. This is a 16-bit integer value in host order. Each of the
|
|
eight values forming the full IP address must be specified
|
|
individually. This is the second of the 8-values. The default for
|
|
all eight values is fc00::2.
|
|
|
|
config NETINIT_IPv6ADDR_3
|
|
hex "[2]"
|
|
default 0x0000
|
|
range 0x0 0xffff
|
|
---help---
|
|
If NET_ICMPv6_AUTOCONF is NOT set, then the static IP address must be
|
|
provided. This is a 16-bit integer value in host order. Each of the
|
|
eight values forming the full IP address must be specified
|
|
individually. This is the third of the 8-values. The default for
|
|
all eight values is fc00::2.
|
|
|
|
config NETINIT_IPv6ADDR_4
|
|
hex "[3]"
|
|
default 0x0000
|
|
range 0x0 0xffff
|
|
---help---
|
|
If NET_ICMPv6_AUTOCONF is NOT set, then the static IP address must be
|
|
provided. This is a 16-bit integer value in host order. Each of the
|
|
eight values forming the full IP address must be specified
|
|
individually. This is the fourth of the 8-values. The default for
|
|
all eight values is fc00::2.
|
|
|
|
config NETINIT_IPv6ADDR_5
|
|
hex "[4]"
|
|
default 0x0000
|
|
range 0x0 0xffff
|
|
---help---
|
|
If NET_ICMPv6_AUTOCONF is NOT set, then the static IP address must be
|
|
provided. This is a 16-bit integer value in host order. Each of the
|
|
eight values forming the full IP address must be specified
|
|
individually. This is the fifth of the 8-values. The default for
|
|
all eight values is fc00::2.
|
|
|
|
config NETINIT_IPv6ADDR_6
|
|
hex "[5]"
|
|
default 0x0000
|
|
range 0x0 0xffff
|
|
---help---
|
|
If NET_ICMPv6_AUTOCONF is NOT set, then the static IP address must be
|
|
provided. This is a 16-bit integer value in host order. Each of the
|
|
eight values forming the full IP address must be specified
|
|
individually. This is the sixth of the 8-values. The default for
|
|
all eight values is fc00::2.
|
|
|
|
config NETINIT_IPv6ADDR_7
|
|
hex "[6]"
|
|
default 0x0000
|
|
range 0x0 0xffff
|
|
---help---
|
|
If NET_ICMPv6_AUTOCONF is NOT set, then the static IP address must be
|
|
provided. This is a 16-bit integer value in host order. Each of the
|
|
eight values forming the full IP address must be specified
|
|
individually. This is the seventh of the 8-values. The default for
|
|
all eight values is fc00::2.
|
|
|
|
config NETINIT_IPv6ADDR_8
|
|
hex "[7]"
|
|
default 0x0002
|
|
range 0x0 0xffff
|
|
---help---
|
|
If NET_ICMPv6_AUTOCONF is NOT set, then the static IP address must be
|
|
provided. This is a 16-bit integer value in host order. Each of the
|
|
eight values forming the full IP address must be specified
|
|
individually. This is the last of the 8-values. The default for
|
|
all eight values is fc00::2.
|
|
|
|
comment "Router IPv6 address"
|
|
|
|
config NETINIT_DRIPv6ADDR_1
|
|
hex "[0]"
|
|
default 0xfc00
|
|
range 0x0 0xffff
|
|
---help---
|
|
Default router IP address (aka, Gateway). This is a 16-bit integer
|
|
value in host order. Each of the eight values forming the full IP
|
|
address must be specified individually. This is the first of the
|
|
8-values. The default for all eight values is fc00::1.
|
|
|
|
config NETINIT_DRIPv6ADDR_2
|
|
hex "[1]"
|
|
default 0x0000
|
|
range 0x0 0xffff
|
|
---help---
|
|
Default router IP address (aka, Gateway). This is a 16-bit integer
|
|
value in host order. Each of the eight values forming the full IP
|
|
address must be specified individually. This is the second of the
|
|
8-values. The default for all eight values is fc00::1.
|
|
|
|
config NETINIT_DRIPv6ADDR_3
|
|
hex "[2]"
|
|
default 0x0000
|
|
range 0x0 0xffff
|
|
---help---
|
|
Default router IP address (aka, Gateway). This is a 16-bit integer
|
|
value in host order. Each of the eight values forming the full IP
|
|
address must be specified individually. This is the third of the
|
|
8-values. The default for all eight values is fc00::1.
|
|
|
|
config NETINIT_DRIPv6ADDR_4
|
|
hex "[3]"
|
|
default 0x0000
|
|
range 0x0 0xffff
|
|
---help---
|
|
Default router IP address (aka, Gateway). This is a 16-bit integer
|
|
value in host order. Each of the eight values forming the full IP
|
|
address must be specified individually. This is the fourth of the
|
|
8-values. The default for all eight values is fc00::1.
|
|
|
|
config NETINIT_DRIPv6ADDR_5
|
|
hex "[4]"
|
|
default 0x0000
|
|
range 0x0 0xffff
|
|
---help---
|
|
Default router IP address (aka, Gateway). This is a 16-bit integer
|
|
value in host order. Each of the eight values forming the full IP
|
|
address must be specified individually. This is the fifth of the
|
|
8-values. The default for all eight values is fc00::1.
|
|
|
|
config NETINIT_DRIPv6ADDR_6
|
|
hex "[5]"
|
|
default 0x0000
|
|
range 0x0 0xffff
|
|
---help---
|
|
Default router IP address (aka, Gateway). This is a 16-bit integer
|
|
value in host order. Each of the eight values forming the full IP
|
|
address must be specified individually. This is the sixth of the
|
|
8-values. The default for all eight values is fc00::1.
|
|
|
|
config NETINIT_DRIPv6ADDR_7
|
|
hex "[6]"
|
|
default 0x0000
|
|
range 0x0 0xffff
|
|
---help---
|
|
Default router IP address (aka, Gateway). This is a 16-bit integer
|
|
value in host order. Each of the eight values forming the full IP
|
|
address must be specified individually. This is the seventh of the
|
|
8-values. The default for all eight values is fc00::1.
|
|
|
|
config NETINIT_DRIPv6ADDR_8
|
|
hex "[7]"
|
|
default 0x0001
|
|
range 0x0 0xffff
|
|
---help---
|
|
Default router IP address (aka, Gateway). This is a 16-bit integer
|
|
value in host order. Each of the eight values forming the full IP
|
|
address must be specified individually. This is the last of the
|
|
8-values. The default for all eight values is fc00::1.
|
|
|
|
comment "IPv6 Network mask"
|
|
|
|
config NETINIT_IPv6NETMASK_1
|
|
hex "[0]"
|
|
default 0xffff
|
|
range 0x0 0xffff
|
|
---help---
|
|
Network mask. This is a 16-bit integer value in host order. Each
|
|
of the eight values forming the full IP address must be specified
|
|
individually. This is the first of the 8-values. The default for
|
|
all eight values is fe00::0.
|
|
|
|
config NETINIT_IPv6NETMASK_2
|
|
hex "[1]"
|
|
default 0xffff
|
|
range 0x0 0xffff
|
|
---help---
|
|
Network mask. This is a 16-bit integer value in host order. Each
|
|
of the eight values forming the full IP address must be specified
|
|
individually. This is the second of the 8-values. The default for
|
|
all eight values is fe00::0.
|
|
|
|
config NETINIT_IPv6NETMASK_3
|
|
hex "[2]"
|
|
default 0xffff
|
|
range 0x0 0xffff
|
|
---help---
|
|
Network mask. This is a 16-bit integer value in host order. Each
|
|
of the eight values forming the full IP address must be specified
|
|
individually. This is the third of the 8-values. The default for
|
|
all eight values is fe00::0.
|
|
|
|
config NETINIT_IPv6NETMASK_4
|
|
hex "[3]"
|
|
default 0xffff
|
|
range 0x0 0xffff
|
|
---help---
|
|
Network mask. This is a 16-bit integer value in host order. Each
|
|
of the eight values forming the full IP address must be specified
|
|
individually. This is the fourth of the 8-values. The default for
|
|
all eight values is fe00::0.
|
|
|
|
config NETINIT_IPv6NETMASK_5
|
|
hex "[4]"
|
|
default 0xffff
|
|
range 0x0 0xffff
|
|
---help---
|
|
Network mask. This is a 16-bit integer value in host order. Each
|
|
of the eight values forming the full IP address must be specified
|
|
individually. This is the fifth of the 8-values. The default for
|
|
all eight values is fe00::0.
|
|
|
|
config NETINIT_IPv6NETMASK_6
|
|
hex "[5]"
|
|
default 0xffff
|
|
range 0x0 0xffff
|
|
---help---
|
|
Network mask. This is a 16-bit integer value in host order. Each
|
|
of the eight values forming the full IP address must be specified
|
|
individually. This is the sixth of the 8-values. The default for
|
|
all eight values is fe00::0.
|
|
|
|
config NETINIT_IPv6NETMASK_7
|
|
hex "[6]"
|
|
default 0xffff
|
|
range 0x0 0xffff
|
|
---help---
|
|
Network mask. This is a 16-bit integer value in host order. Each
|
|
of the eight values forming the full IP address must be specified
|
|
individually. This is the seventh of the 8-values. The default for
|
|
all eight values is fe00::0.
|
|
|
|
config NETINIT_IPv6NETMASK_8
|
|
hex "[7]"
|
|
default 0x0000
|
|
range 0x0 0xffff
|
|
---help---
|
|
Network mask. This is a 16-bit integer value in host order. Each
|
|
of the eight values forming the full IP address must be specified
|
|
individually. This is the eighth of the 8-values. The default for
|
|
all eight values is fe00::0.
|
|
|
|
endif # NET_IPv6 && !NET_ICMPv6_AUTOCONF
|
|
endmenu # IP Address Configuration
|
|
|
|
config NETINIT_DNS
|
|
bool "Use DNS"
|
|
default n
|
|
depends on NETDB_DNSCLIENT
|
|
---help---
|
|
Configure to use a DNS.
|
|
|
|
config NETINIT_DNSIPADDR
|
|
hex "DNS IP address"
|
|
default 0xa0000001
|
|
depends on NETINIT_DNS
|
|
---help---
|
|
Configure the DNS address. This is a 32-bit integer value in host
|
|
order. So, as an example, 0xa0000001 would be 10.0.0.1.
|
|
|
|
config NETINIT_NOMAC
|
|
bool "Hardware has no MAC address"
|
|
default n
|
|
---help---
|
|
Set if your Ethernet hardware has no built-in MAC address.
|
|
If set, a bogus MAC will be assigned.
|
|
|
|
if NETINIT_NOMAC
|
|
|
|
choice
|
|
prompt "MAC address selection"
|
|
default NETINIT_SWMAC
|
|
---help---
|
|
If the hardware as no MAC address, then this logic must assign an
|
|
address to the hardware before it brings the network up. This
|
|
choice allows you select the source of that MAC address.
|
|
|
|
config NETINIT_SWMAC
|
|
bool "Fixed address"
|
|
---help---
|
|
With this choice, you can assign a fixed MAC address determined by
|
|
a NuttX configuration option.
|
|
|
|
endchoice # MAC address selection
|
|
|
|
config NETINIT_MACADDR
|
|
hex "Fixed MAC address"
|
|
default 0x00e0deadbeef if NET_ETHERNET
|
|
default 0x00fade00deadbeef if !NET_ETHERNET && NET_6LOWPAN
|
|
depends on NETINIT_SWMAC && (NET_ETHERNET || NET_6LOWPAN)
|
|
---help---
|
|
If the hardware has no built-in MAC address and if the NETINIT_SWMAC
|
|
option is selected, then the fixed, software-assigned MAC address
|
|
MAC address must provided with this selection.
|
|
|
|
endif # NETINIT_NOMAC
|
|
|
|
menu "WAPI Configuration"
|
|
depends on NET && WIRELESS_WAPI
|
|
|
|
config NETINIT_WAPI_STAMODE
|
|
int "Wireless mode of operation"
|
|
default 2
|
|
range 0 8
|
|
---help---
|
|
Mode of operation. See the IW_MODE_* definitions in
|
|
include/nuttx/wireless/wireless. The default value corresponds to
|
|
IW_MODE_INFRA
|
|
|
|
config NETINIT_WAPI_AUTHWPA
|
|
hex "IW_AUTH_WPA_VERSION value"
|
|
default 0x00000004
|
|
range 0x00000001 0x00000004
|
|
---help---
|
|
IW_AUTH_WPA_VERSION values. See the IW_AUTH_WPA_VERSION_* definitions
|
|
in include/nuttx/wireless/wireless. The default value corresponds to
|
|
IW_AUTH_WPA_VERSION_WPA2. NOTE that this is a bit-encoded field. The
|
|
only valid values are 0x00000001, 0x00000002, and 0x00000004
|
|
|
|
config NETINIT_WAPI_CIPHERMODE
|
|
hex "IW_AUTH_PAIRWISE_CIPHER and IW_AUTH_GROUP_CIPHER values"
|
|
default 0x00000008
|
|
range 0x00000001 0x00000010
|
|
---help---
|
|
IW_AUTH_PAIRWISE_CIPHER and IW_AUTH_GROUP_CIPHER values. See the
|
|
IW_AUTH_CIPHER_* definitions in include/nuttx/wireless/wireless.
|
|
The default value corresponds to IW_AUTH_CIPHER_CCMP. NOTE that
|
|
this is a bit-encoded field. The only valid values are 0x00000001,
|
|
0x00000002,0x00000004, ... 0x00000010
|
|
|
|
config NETINIT_WAPI_ALG
|
|
int "Algorithm"
|
|
default 3
|
|
range 0 13
|
|
---help---
|
|
Algorithm. See enum wpa_alg_e in apps/include/wireless/wapi.h. The
|
|
default corresponds to WPA_ALG_CCMP.
|
|
|
|
config NETINIT_WAPI_SSID
|
|
string "SSID"
|
|
default "myApSSID"
|
|
|
|
config NETINIT_WAPI_PASSPHRASE
|
|
string "Passprhase"
|
|
default "mySSIDpassphrase"
|
|
|
|
endmenu # WAPI Configuration
|
|
endif # NETUTILS_NETINIT
|