123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374 |
- #
- # For a description of the syntax of this configuration file,
- # see the file kconfig-language.txt in the NuttX tools repository.
- #
- config ARCH_HAVE_NET
- bool
- default n
- config ARCH_HAVE_PHY
- bool
- default n
- config ARCH_PHY_INTERRUPT
- bool
- default n
- config ARCH_PHY_POLLED
- bool
- default n
- config ARCH_HAVE_NETDEV_STATISTICS
- bool
- default n
- config NET_WRITE_BUFFERS
- bool
- default n
- select MM_IOB
- config NET_READAHEAD
- bool
- default n
- select MM_IOB
- config NET_MCASTGROUP
- bool
- default n
- config NET
- bool "Networking support"
- default n
- select ARCH_HAVE_NET
- ---help---
- Enable or disable all network features
- if NET
- 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"
- config NET_ETH_PKTSIZE
- int "Ethernet packet buffer size"
- default 1294 if NET_IPv6
- default 590 if !NET_IPv6
- range 1294 1518 if NET_IPv6
- range 590 1518 if !NET_IPv6
- depends on NET_ETHERNET
- ---help---
- Packet buffer size. This size includes the TCP/UDP payload plus the
- size of TCP/UDP header, the IP header, and the Ethernet 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).
- 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 =
- 590.
- IPv6 hosts are required to be able to handle an MSS of 1220 octets,
- resulting in a minimum buffer size of 1220+20+40+14 = 1294
- To get an MTU of 1500, for example, you would need packet buffer of
- size 1514.
- config NET_SLIP_PKTSIZE
- int "SLIP packet buffer size"
- default 296
- depends on NET_SLIP
- range 296 1518
- ---help---
- 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.
- 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). SLIP has no link layer header so for
- SLIP the MTU is the same as the PKTSIZE.
- SLIP is required to support at least 256+20+20 = 296. Values other than
- 296 are not recommended.
- The Linux slip module hard-codes its MTU size to 296 (40 bytes for
- the IP+TCP headers plus 256 bytes of data). So you might as well
- set CONFIG_NET_SLIP_PKTSIZE to 296 as well.
- 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
- the MSS value in the TCP connection structure).
- 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.
- endmenu # Driver buffer configuration
- menu "Link layer support"
- config NET_ETHERNET
- bool "Ethernet support"
- default y
- ---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).
- config NET_LOOPBACK
- bool "Local loopback"
- select ARCH_HAVE_NETDEV_STATISTICS
- default n
- ---help---
- Add support for the local network loopback device, lo.
- 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.
- menuconfig NET_MBIM
- bool "MBIM modem support"
- depends on USBHOST_CDCMBIM
- default n
- menuconfig NET_SLIP
- bool "SLIP support"
- select ARCH_HAVE_NETDEV_STATISTICS
- default n
- ---help---
- Enables building of the SLIP driver. SLIP requires
- at least one IP protocol selected.
- SLIP supports point-to-point IP communications over a serial port.
- 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
- configurations is that when SLIP is selected:
- * The link level header (that comes before the IP header) is omitted.
- * All MAC address processing is suppressed.
- * ARP is disabled.
- 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).
- if NET_SLIP
- config SLIP_NINTERFACES
- int "Number of SLIP interfaces"
- default 1
- ---help---
- Selects the number of physical SLIP
- interfaces to support.
- Default: 1
- config SLIP_STACKSIZE
- int "SLIP stack size"
- default DEFAULT_TASK_STACKSIZE
- ---help---
- Select the stack size of the SLIP RX and TX tasks.
- config SLIP_DEFPRIO
- int "SLIP priority"
- default 128
- ---help---
- The priority of the SLIP RX and TX tasks. Default: 128
- endif # NET_SLIP
- menuconfig NET_TUN
- bool "TUN Virtual Network Device support"
- default n
- select ARCH_HAVE_NETDEV_STATISTICS
- 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
- config NET_TUN_PKTSIZE
- int "TUN packet buffer size"
- default 296
- range 296 1518
- ---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.
- endif # NET_TUN
- 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
- driver initialization function, up_netinitialize(). This
- 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
- interfaces that may not be ready when up_netinitialize() is normally
- called.
- endmenu # Link layer support
- source "net/netdev/Kconfig"
- menu "Internet Protocol Selection"
- config NET_IPv4
- bool "IPv4"
- default y
- ---help---
- Build in support for IPv4.
- config NET_IPv6
- bool "IPv6"
- default n
- ---help---
- Build in support for IPv6.
- source "net/neighbor/Kconfig"
- 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.
- source "net/sixlowpan/Kconfig"
- source "net/ipforward/Kconfig"
- endmenu # Internet Protocol Selection
- source "net/socket/Kconfig"
- source "net/inet/Kconfig"
- source "net/pkt/Kconfig"
- source "net/local/Kconfig"
- source "net/rpmsg/Kconfig"
- source "net/can/Kconfig"
- source "net/netlink/Kconfig"
- source "net/tcp/Kconfig"
- source "net/udp/Kconfig"
- source "net/bluetooth/Kconfig"
- source "net/ieee802154/Kconfig"
- source "net/icmp/Kconfig"
- source "net/icmpv6/Kconfig"
- source "net/mld/Kconfig"
- 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"
- 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"
- depends on NET_STAR
- default NET_STARPOINT
- ---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
- endmenu # Network Topologies
- source "net/route/Kconfig"
- endif # NET
|