2012-04-06 23:49:35 +08:00
|
|
|
#
|
|
|
|
# For a description of the syntax of this configuration file,
|
2015-06-28 22:08:57 +08:00
|
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
2012-04-06 23:49:35 +08:00
|
|
|
#
|
2012-04-12 07:06:30 +08:00
|
|
|
|
2013-10-24 01:48:57 +08:00
|
|
|
config ARCH_HAVE_NET
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
|
|
|
|
config ARCH_HAVE_PHY
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
|
2020-02-09 08:55:41 +08:00
|
|
|
config ARCH_PHY_INTERRUPT
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
|
2020-09-18 20:04:49 +08:00
|
|
|
config ARCH_PHY_POLLED
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
|
2020-02-02 14:20:43 +08:00
|
|
|
config ARCH_HAVE_NETDEV_STATISTICS
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
|
2018-01-23 08:32:02 +08:00
|
|
|
config NET_WRITE_BUFFERS
|
|
|
|
bool
|
|
|
|
default n
|
2020-01-11 11:56:03 +08:00
|
|
|
select MM_IOB
|
2018-01-23 08:32:02 +08:00
|
|
|
|
|
|
|
config NET_READAHEAD
|
|
|
|
bool
|
|
|
|
default n
|
2020-01-11 11:56:03 +08:00
|
|
|
select MM_IOB
|
2018-01-23 08:32:02 +08:00
|
|
|
|
2018-11-01 05:03:51 +08:00
|
|
|
config NET_MCASTGROUP
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
|
2012-04-12 07:06:30 +08:00
|
|
|
config NET
|
|
|
|
bool "Networking support"
|
|
|
|
default n
|
2013-10-24 01:48:57 +08:00
|
|
|
select ARCH_HAVE_NET
|
2012-04-12 07:06:30 +08:00
|
|
|
---help---
|
|
|
|
Enable or disable all network features
|
|
|
|
|
|
|
|
if NET
|
|
|
|
|
2014-11-17 01:15:21 +08:00
|
|
|
config NET_PROMISCUOUS
|
|
|
|
bool "Promiscuous mode"
|
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
Force the Ethernet driver to operate in promiscuous mode (if supported
|
|
|
|
by the Ethernet driver).
|
|
|
|
|
|
|
|
menu "Driver buffer configuration"
|
|
|
|
|
2018-07-05 04:10:40 +08:00
|
|
|
config NET_ETH_PKTSIZE
|
|
|
|
int "Ethernet packet buffer size"
|
2014-11-16 23:22:38 +08:00
|
|
|
default 1294 if NET_IPv6
|
|
|
|
default 590 if !NET_IPv6
|
2019-08-31 23:08:32 +08:00
|
|
|
range 1294 1518 if NET_IPv6
|
|
|
|
range 590 1518 if !NET_IPv6
|
2014-11-16 23:22:38 +08:00
|
|
|
depends on NET_ETHERNET
|
2012-04-12 07:06:30 +08:00
|
|
|
---help---
|
2014-01-18 03:24:44 +08:00
|
|
|
Packet buffer size. This size includes the TCP/UDP payload plus the
|
2014-11-16 23:22:38 +08:00
|
|
|
size of TCP/UDP header, the IP header, and the Ethernet header.
|
2018-07-05 04:10:40 +08:00
|
|
|
This value is related to the MTU (Maximum Transmission Unit), except
|
|
|
|
that it includes the size of the link layer header; the payload is
|
|
|
|
the MSS (Maximum Segment Size).
|
2014-01-17 06:08:51 +08:00
|
|
|
|
|
|
|
IPv4 hosts are required to be able to handle an MSS of at least
|
|
|
|
536 octets, resulting in a minimum buffer size of 536+20+20+14 =
|
2014-11-16 23:22:38 +08:00
|
|
|
590.
|
2014-01-17 06:08:51 +08:00
|
|
|
|
|
|
|
IPv6 hosts are required to be able to handle an MSS of 1220 octets,
|
2020-03-17 03:42:34 +08:00
|
|
|
resulting in a minimum buffer size of 1220+20+40+14 = 1294
|
2012-04-12 07:06:30 +08:00
|
|
|
|
2018-07-05 05:36:31 +08:00
|
|
|
To get an MTU of 1500, for example, you would need packet buffer of
|
|
|
|
size 1514.
|
|
|
|
|
2018-07-05 04:10:40 +08:00
|
|
|
config NET_SLIP_PKTSIZE
|
2018-08-27 04:28:35 +08:00
|
|
|
int "SLIP packet buffer size"
|
2014-11-16 23:22:38 +08:00
|
|
|
default 296
|
|
|
|
depends on NET_SLIP
|
|
|
|
range 296 1518
|
|
|
|
---help---
|
2015-08-25 03:49:12 +08:00
|
|
|
Provides the size of the SLIP packet buffers. This size includes
|
|
|
|
the TCP/UDP payload plus the size of TCP/UDP header and the IP header.
|
2018-07-05 04:10:40 +08:00
|
|
|
This value is related to the MTU (Maximum Transmission Unit), except
|
|
|
|
that it includes the size of the link layer header; the payload is
|
2018-07-05 05:36:31 +08:00
|
|
|
the MSS (Maximum Segment Size). SLIP has no link layer header so for
|
|
|
|
SLIP the MTU is the same as the PKTSIZE.
|
2015-08-25 03:49:12 +08:00
|
|
|
|
2018-06-25 05:01:49 +08:00
|
|
|
SLIP is required to support at least 256+20+20 = 296. Values other than
|
2015-08-25 03:49:12 +08:00
|
|
|
296 are not recommended.
|
|
|
|
|
|
|
|
The Linux slip module hard-codes its MTU size to 296 (40 bytes for
|
2020-02-02 14:20:43 +08:00
|
|
|
the IP+TCP headers plus 256 bytes of data). So you might as well
|
2018-07-05 04:10:40 +08:00
|
|
|
set CONFIG_NET_SLIP_PKTSIZE to 296 as well.
|
2015-08-25 03:49:12 +08:00
|
|
|
|
|
|
|
There may be an issue with this setting, however. I see that Linux
|
|
|
|
uses a MTU of 296 and window of 256, but actually only sends 168
|
|
|
|
bytes of data: 40 + 128. I believe that is to allow for the 2x
|
|
|
|
worst cast packet expansion. Ideally we would like to advertise the
|
|
|
|
256 MSS, but restrict transfers to 128 bytes (possibly by modifying
|
2015-08-27 22:39:17 +08:00
|
|
|
the MSS value in the TCP connection structure).
|
2015-08-25 03:49:12 +08:00
|
|
|
|
2014-06-19 22:18:46 +08:00
|
|
|
config NET_GUARDSIZE
|
|
|
|
int "Driver I/O guard size"
|
|
|
|
default 2
|
|
|
|
---help---
|
|
|
|
Network drivers often receive packets with garbage at the end and
|
|
|
|
are longer than the size of packet in the TCP header. The following
|
|
|
|
"fudge" factor increases the size of the I/O buffering by a small
|
|
|
|
amount to allocate slightly oversize packets. After receipt, the
|
|
|
|
packet size will be chopped down to the size indicated in the TCP
|
|
|
|
header.
|
|
|
|
|
2014-11-17 01:27:53 +08:00
|
|
|
endmenu # Driver buffer configuration
|
2014-11-17 01:15:21 +08:00
|
|
|
|
2017-08-21 01:14:43 +08:00
|
|
|
menu "Link layer support"
|
2014-11-15 22:22:51 +08:00
|
|
|
|
2014-06-01 23:40:23 +08:00
|
|
|
config NET_ETHERNET
|
2014-11-15 22:55:50 +08:00
|
|
|
bool "Ethernet support"
|
2017-04-01 01:15:16 +08:00
|
|
|
default y
|
2014-06-01 23:40:23 +08:00
|
|
|
---help---
|
|
|
|
If NET_SLIP is not selected, then Ethernet will be used (there is
|
|
|
|
no need to define anything special in the configuration file to use
|
|
|
|
Ethernet -- it is the default).
|
|
|
|
|
2015-08-25 03:49:12 +08:00
|
|
|
config NET_LOOPBACK
|
|
|
|
bool "Local loopback"
|
2020-02-02 14:15:24 +08:00
|
|
|
select ARCH_HAVE_NETDEV_STATISTICS
|
2015-08-25 03:49:12 +08:00
|
|
|
default n
|
|
|
|
---help---
|
2016-12-04 06:28:19 +08:00
|
|
|
Add support for the local network loopback device, lo.
|
2015-08-25 03:49:12 +08:00
|
|
|
|
2020-02-11 08:35:02 +08:00
|
|
|
config NET_LOOPBACK_PKTSIZE
|
|
|
|
int "Loopback packet buffer size"
|
|
|
|
default 0
|
|
|
|
depends on NET_LOOPBACK
|
|
|
|
range 0 65535
|
|
|
|
---help---
|
|
|
|
The loopback driver packet buffer should be quite large. The larger
|
|
|
|
the loopback packet buffer, the better will be TCP performance of
|
|
|
|
the loopback transfers. The Linux loopback device historically used
|
|
|
|
packet buffers of size 16Kb, but that was increased in recent Linux
|
|
|
|
versions to 64Kb. Those sizes may be excessive for resource
|
|
|
|
constrained MCUs, however.
|
|
|
|
|
|
|
|
The network enforces a lower limit that is the maximum packet size
|
|
|
|
of all enabled link layer protocols. The default value of
|
|
|
|
CONFIG_NET_LOOPBACK_PKTSIZE is zero, meaning that this maximum
|
|
|
|
packet size will be used by loopback driver.
|
|
|
|
|
2020-06-15 06:59:38 +08:00
|
|
|
menuconfig NET_MBIM
|
2020-06-15 08:08:20 +08:00
|
|
|
bool "MBIM modem support"
|
2020-06-15 06:59:38 +08:00
|
|
|
depends on USBHOST_CDCMBIM
|
|
|
|
default n
|
|
|
|
|
2017-08-21 01:14:43 +08:00
|
|
|
menuconfig NET_SLIP
|
2012-04-12 07:06:30 +08:00
|
|
|
bool "SLIP support"
|
2020-02-02 14:20:43 +08:00
|
|
|
select ARCH_HAVE_NETDEV_STATISTICS
|
2012-04-12 07:06:30 +08:00
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
Enables building of the SLIP driver. SLIP requires
|
2016-12-04 06:28:19 +08:00
|
|
|
at least one IP protocol selected.
|
2012-04-12 07:06:30 +08:00
|
|
|
|
|
|
|
SLIP supports point-to-point IP communications over a serial port.
|
2018-10-20 20:35:39 +08:00
|
|
|
The default link layer for network layer is Ethernet. If NET_SLIP
|
|
|
|
is defined in the NuttX configuration file, then SLIP will be
|
|
|
|
supported. The basic differences between the SLIP and Ethernet
|
2015-11-27 02:08:09 +08:00
|
|
|
configurations is that when SLIP is selected:
|
2014-01-17 06:08:51 +08:00
|
|
|
|
|
|
|
* The link level header (that comes before the IP header) is omitted.
|
|
|
|
* All MAC address processing is suppressed.
|
|
|
|
* ARP is disabled.
|
|
|
|
|
2012-04-12 07:06:30 +08:00
|
|
|
If NET_SLIP is not selected, then Ethernet will be used (there is
|
|
|
|
no need to define anything special in the configuration file to use
|
2013-09-06 23:18:07 +08:00
|
|
|
Ethernet -- it is the default).
|
2012-04-12 07:06:30 +08:00
|
|
|
|
|
|
|
if NET_SLIP
|
|
|
|
|
2013-09-06 23:18:07 +08:00
|
|
|
config SLIP_NINTERFACES
|
2012-04-12 07:06:30 +08:00
|
|
|
int "Number of SLIP interfaces"
|
|
|
|
default 1
|
|
|
|
---help---
|
|
|
|
Selects the number of physical SLIP
|
2013-09-06 23:18:07 +08:00
|
|
|
interfaces to support.
|
2012-04-12 07:06:30 +08:00
|
|
|
Default: 1
|
|
|
|
|
|
|
|
config SLIP_STACKSIZE
|
|
|
|
int "SLIP stack size"
|
2020-03-27 09:51:03 +08:00
|
|
|
default DEFAULT_TASK_STACKSIZE
|
2012-04-12 07:06:30 +08:00
|
|
|
---help---
|
2020-03-27 09:51:03 +08:00
|
|
|
Select the stack size of the SLIP RX and TX tasks.
|
2012-04-12 07:06:30 +08:00
|
|
|
|
|
|
|
config SLIP_DEFPRIO
|
|
|
|
int "SLIP priority"
|
|
|
|
default 128
|
|
|
|
---help---
|
|
|
|
The priority of the SLIP RX and TX tasks. Default: 128
|
|
|
|
|
2014-01-17 06:08:51 +08:00
|
|
|
endif # NET_SLIP
|
2015-03-11 20:52:56 +08:00
|
|
|
|
2017-08-21 01:14:43 +08:00
|
|
|
menuconfig NET_TUN
|
2015-03-11 20:52:56 +08:00
|
|
|
bool "TUN Virtual Network Device support"
|
|
|
|
default n
|
2015-11-27 02:08:09 +08:00
|
|
|
select ARCH_HAVE_NETDEV_STATISTICS
|
2015-03-11 20:52:56 +08:00
|
|
|
|
|
|
|
if NET_TUN
|
|
|
|
|
|
|
|
config TUN_NINTERFACES
|
|
|
|
int "Number of TUN interfaces"
|
|
|
|
default 1
|
|
|
|
range 1 8
|
|
|
|
---help---
|
|
|
|
Selects the number of TUN
|
|
|
|
interfaces to support.
|
|
|
|
Default: 1
|
|
|
|
|
2018-07-05 04:10:40 +08:00
|
|
|
config NET_TUN_PKTSIZE
|
|
|
|
int "TUN packet buffer size"
|
2016-11-18 23:22:49 +08:00
|
|
|
default 296
|
|
|
|
range 296 1518
|
2018-07-05 05:36:31 +08:00
|
|
|
---help---
|
|
|
|
Provides the size of the TUN packet buffers. This size includes
|
|
|
|
the TCP/UDP payload plus the size of TCP/UDP header and the IP header.
|
|
|
|
This value is related to the MTU (Maximum Transmission Unit), except
|
|
|
|
that it includes the size of the link layer header; the payload is
|
|
|
|
the MSS (Maximum Segment Size). TUN has no link layer header so for
|
|
|
|
TUN the MTU is the same as the PKTSIZE.
|
2016-11-18 23:22:49 +08:00
|
|
|
|
2015-03-11 20:52:56 +08:00
|
|
|
endif # NET_TUN
|
|
|
|
|
2018-11-12 20:36:26 +08:00
|
|
|
config NETDEV_LATEINIT
|
|
|
|
bool "Late driver initialization"
|
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
Normally, networking initialization occur in the later phase of the
|
|
|
|
boot process in the function up_initialize() when it calls the
|
2019-08-05 04:50:28 +08:00
|
|
|
driver initialization function, up_netinitialize(). This
|
2018-11-12 20:36:26 +08:00
|
|
|
initialization occurs after a sufficient about of the OS has been
|
|
|
|
initialized so that driver registration can be performed, but
|
|
|
|
before the completion of OS initialization and before the first
|
|
|
|
application is started.
|
|
|
|
|
|
|
|
In a few situations, however, you may want to suppress this early
|
|
|
|
network driver initialization. As examples:
|
|
|
|
|
|
|
|
- If you are using SLIP or PPPD, then there will be no network
|
|
|
|
driver to be initialized,
|
|
|
|
- Certain multi-network configurations where a simple call to
|
|
|
|
up_netinitialize() may be insufficient, and
|
|
|
|
- Situations where there are other board-level hardware
|
|
|
|
dependencies so that the hardware is not in an appropriate
|
|
|
|
state for up_netinitialize() to be called.
|
|
|
|
|
|
|
|
Examples of this latter situation includes such things as network
|
|
|
|
drivers that required some setup via an I2C I/O expander, or network
|
|
|
|
drivers that depend on USB, SPI, I2C, PCI, serial, or other
|
2020-03-12 14:04:42 +08:00
|
|
|
interfaces that may not be ready when up_netinitialize() is normally
|
2018-11-12 20:36:26 +08:00
|
|
|
called.
|
|
|
|
|
2018-10-20 20:35:39 +08:00
|
|
|
endmenu # Link layer support
|
2014-11-15 22:55:50 +08:00
|
|
|
|
|
|
|
source "net/netdev/Kconfig"
|
2015-01-15 00:51:09 +08:00
|
|
|
|
2015-01-18 23:23:22 +08:00
|
|
|
menu "Internet Protocol Selection"
|
2015-01-15 00:51:09 +08:00
|
|
|
|
|
|
|
config NET_IPv4
|
2015-01-18 23:23:22 +08:00
|
|
|
bool "IPv4"
|
|
|
|
default y
|
2015-01-17 06:49:48 +08:00
|
|
|
---help---
|
|
|
|
Build in support for IPv4.
|
|
|
|
|
2017-08-21 01:14:43 +08:00
|
|
|
config NET_IPv6
|
2015-01-17 06:49:48 +08:00
|
|
|
bool "IPv6"
|
|
|
|
default n
|
|
|
|
---help---
|
2015-01-18 23:23:22 +08:00
|
|
|
Build in support for IPv6.
|
2015-01-15 00:51:09 +08:00
|
|
|
|
2015-01-17 06:49:48 +08:00
|
|
|
source "net/neighbor/Kconfig"
|
2017-08-21 01:14:43 +08:00
|
|
|
|
|
|
|
menuconfig NET_6LOWPAN
|
|
|
|
bool "6LoWPAN support"
|
|
|
|
default n
|
|
|
|
select NETDEV_IOCTL
|
|
|
|
select NET_HAVE_STAR
|
|
|
|
depends on NET_IPv6
|
|
|
|
---help---
|
|
|
|
Enable support for Low power Wireless Personal Area Networking (6LoWPAN)
|
|
|
|
for IEEE 802.15.4 or other packet radios.
|
|
|
|
|
2017-03-28 04:53:52 +08:00
|
|
|
source "net/sixlowpan/Kconfig"
|
2017-07-08 08:33:06 +08:00
|
|
|
source "net/ipforward/Kconfig"
|
2017-07-05 00:19:52 +08:00
|
|
|
|
2017-06-29 22:16:46 +08:00
|
|
|
endmenu # Internet Protocol Selection
|
|
|
|
|
|
|
|
source "net/socket/Kconfig"
|
2017-08-07 04:48:19 +08:00
|
|
|
source "net/inet/Kconfig"
|
2017-06-29 22:16:46 +08:00
|
|
|
source "net/pkt/Kconfig"
|
|
|
|
source "net/local/Kconfig"
|
2020-11-05 20:30:49 +08:00
|
|
|
source "net/rpmsg/Kconfig"
|
2020-06-15 16:23:25 +08:00
|
|
|
source "net/can/Kconfig"
|
2018-08-04 03:22:36 +08:00
|
|
|
source "net/netlink/Kconfig"
|
2017-06-29 22:16:46 +08:00
|
|
|
source "net/tcp/Kconfig"
|
|
|
|
source "net/udp/Kconfig"
|
2018-04-01 04:55:03 +08:00
|
|
|
source "net/bluetooth/Kconfig"
|
2017-08-19 22:48:52 +08:00
|
|
|
source "net/ieee802154/Kconfig"
|
2017-06-29 22:16:46 +08:00
|
|
|
source "net/icmp/Kconfig"
|
|
|
|
source "net/icmpv6/Kconfig"
|
2018-11-01 04:10:19 +08:00
|
|
|
source "net/mld/Kconfig"
|
2017-06-29 22:16:46 +08:00
|
|
|
source "net/igmp/Kconfig"
|
|
|
|
source "net/arp/Kconfig"
|
|
|
|
source "net/procfs/Kconfig"
|
|
|
|
source "net/usrsock/Kconfig"
|
|
|
|
source "net/utils/Kconfig"
|
|
|
|
|
|
|
|
config NET_STATISTICS
|
|
|
|
bool "Collect network statistics"
|
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
Network layer statistics on or off
|
|
|
|
|
|
|
|
config NET_HAVE_STAR
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
---help---
|
|
|
|
Automatically enabled if at least one selected L2 protocol supports
|
|
|
|
a STAR topology. In order to support the star topology, the L2
|
|
|
|
protocol must support relaying all packets to a well-known hub node.
|
|
|
|
|
|
|
|
menu "Network Topologies"
|
|
|
|
|
2017-06-29 05:39:21 +08:00
|
|
|
config NET_STAR
|
|
|
|
bool "Enable star topology"
|
|
|
|
default n
|
|
|
|
depends on NET_HAVE_STAR && NET_IPv6
|
|
|
|
---help---
|
|
|
|
Enable support for a star network topology.
|
|
|
|
|
|
|
|
NOTE: Currently only supported by 6LoWPAN.
|
|
|
|
NOTE: L2 forwarding only supported for IPv6.
|
|
|
|
|
|
|
|
choice
|
|
|
|
prompt "Node role"
|
2017-06-29 22:16:46 +08:00
|
|
|
depends on NET_STAR
|
|
|
|
default NET_STARPOINT
|
2017-06-29 05:39:21 +08:00
|
|
|
---help---
|
|
|
|
Specifies the role of this not in the star configuration.
|
|
|
|
|
|
|
|
config NET_STARPOINT
|
|
|
|
bool "Point node in star"
|
|
|
|
---help---
|
|
|
|
The node is a "point" in the star configuration and must send all
|
|
|
|
packets to the star hub node.
|
|
|
|
|
|
|
|
config NET_STARHUB
|
|
|
|
bool "Hub node of star"
|
|
|
|
select NET_IPFORWARD
|
|
|
|
---help---
|
|
|
|
This is the "hub" node in the star configurations. It will receive
|
|
|
|
packets packets from all "point" nodes and perform L2 forwarding of
|
|
|
|
the packets that are not destined for this node.
|
|
|
|
|
|
|
|
endchoice # Node role
|
2017-06-29 22:16:46 +08:00
|
|
|
endmenu # Network Topologies
|
2014-11-15 22:55:50 +08:00
|
|
|
|
|
|
|
source "net/route/Kconfig"
|
|
|
|
|
2014-01-17 06:08:51 +08:00
|
|
|
endif # NET
|