22cd0d47fa
This makes the user interface a little hostile. People thing of an MTU of 1500 bytes, but the corresponding packet is really 1514 bytes (including the 14 byte Ethernet header). A more friendly solution would configure the MTU (as before), but then derive the packet buffer size by adding the MAC header length. Instead, we define the packet buffer size then derive the MTU. The MTU is not common currency in networking. On the wire, the only real issue is the MSS which is derived from MTU by subtracting the IP header and TCP header sizes (for the case of TCP). Now it is derived for the PKTSIZE by subtracting the IP header, the TCP header, and the MAC header sizes. So we should be all good and without the recurring 14 byte error in MTU's and MSS's. Squashed commit of the following: Trivial update to fix some spacing issues. net/: Rename several macros containing _MTU to _PKTSIZE. net/: Rename CONFIG_NET_SLIP_MTU to CONFIG_NET_SLIP_PKTSIZE and similarly for CONFIG_NET_TUN_MTU. These are not the MTU which does not include the size of the link layer header. These are the full size of the packet buffer memory (minus any GUARD bytes). net/: Rename CONFIG_NET_6LOWPAN_MTU to CONFIG_NET_6LOWPAN_PKTSIZE and similarly for CONFIG_NET_TUN_MTU. These are not the MTU which does not include the size of the link layer header. These are the full size of the packet buffer memory (minus any GUARD bytes). net/: Rename CONFIG_NET_ETH_MTU to CONFIG_NET_ETH_PKTSIZE. This is not the MTU which does not include the size of the link layer header. This is the full size of the packet buffer memory (minus any GUARD bytes). net/: Rename the file d_mtu in the network driver structure to d_pktsize. That value saved there is not the MTU. The packetsize is the memory large enough to hold the maximum packet PLUS the size of the link layer header. The MTU does not include the link layer header.
316 lines
10 KiB
Plaintext
316 lines
10 KiB
Plaintext
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
#
|
|
|
|
if NET_6LOWPAN
|
|
|
|
config NET_6LOWPAN_NREASSBUF
|
|
int "Number of preallocated reassembly buffers"
|
|
default 2
|
|
---help---
|
|
Large IPv6 packets will be fragmented by 6LoWPAN into multiple
|
|
frames and reconstitued into a reassembly buffer on the receiving
|
|
side. Each concurrent reassembly requires one buffer. Reassembly
|
|
buffers are large: The size of the 6LoWPAN MTU plus some overhead
|
|
for the reassembly state.
|
|
|
|
Some reassembly buffers may be preallocated; some may be allocated
|
|
dynamically from the stack. The former require more static memory
|
|
usage; the later require additional CPU cycles to perform the
|
|
allocation and may effect deterministic behavior. So this is a
|
|
trade-off between resources and performance. If the number of pre-
|
|
allocated reassembly buffers are exhausted, the reassembly will
|
|
continue with dynamically allocated reassembly buffers.
|
|
|
|
This behavior can be changed with CONFIG_NET_6LOWPAN_REASS_STATIC
|
|
|
|
config NET_6LOWPAN_REASS_STATIC
|
|
bool "Static reassembly buffers"
|
|
default n
|
|
---help---
|
|
By default, reassembly buffers may be allocated dynamically from the
|
|
stack when all of the statically allocation reassembly buffers are
|
|
in use. This will equire additional CPU cycles to perform the
|
|
allocation and may effect deterministic behavior. This option may
|
|
be selected to suppress all dynamica allocation of reassembly
|
|
buffers. In that case, only static reassembly buffers are available;
|
|
when those are exhausted, frames that require reassembly will be lost.
|
|
|
|
choice
|
|
prompt "6LoWPAN Compression"
|
|
default NET_6LOWPAN_COMPRESSION_HC06
|
|
|
|
config NET_6LOWPAN_COMPRESSION_IPv6
|
|
bool "IPv6 Dispatch"
|
|
---help---
|
|
Packets compression when only IPv6 dispatch is used. There is no
|
|
compression in this case, all fields are sent inline. We just add
|
|
the IPv6 dispatch byte before the packet.
|
|
|
|
config NET_6LOWPAN_COMPRESSION_HC1
|
|
bool "6LoWPAN HC1"
|
|
---help---
|
|
Compress IP/UDP header using HC1 and HC_UDP
|
|
|
|
config NET_6LOWPAN_COMPRESSION_HC06
|
|
bool "6LoWPAN HC06"
|
|
---help---
|
|
Compress IP/UDP header using HC06 compression
|
|
|
|
endchoice # 6LoWPAN Compression
|
|
|
|
config NET_6LOWPAN_COMPRESSION_THRESHOLD
|
|
int "Lower compression threshold"
|
|
default 63
|
|
depends on !NET_6LOWPAN_COMPRESSION_IPv6
|
|
---help---
|
|
CONFIG_NET_6LOWPAN_COMPRESSION_THRESHOLD sets a lower threshold for
|
|
when packets should not be compressed.
|
|
|
|
config NET_6LOWPAN_MINPORT
|
|
hex "Minimum port nubmer"
|
|
default 0xf0b0
|
|
depends on NET_6LOWPAN_COMPRESSION_HC1
|
|
---help---
|
|
HC1 compression of UDP headersis feasible only if both src and dest
|
|
ports are between CONFIG_NET_6LOWPAN_MINPORT and
|
|
CONFIG_NET_6LOWPAN_MINPORT + 15, inclusive.
|
|
|
|
All nodes must agree on the value of CONFIG_NET_6LOWPAN_MINPORT
|
|
|
|
if NET_6LOWPAN_COMPRESSION_HC06
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT
|
|
int "Maximum address contexts"
|
|
default 1
|
|
---help---
|
|
If we use IPHC compression, how many address contexts do we support?
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_0_0
|
|
hex "Address context 0 Prefix 0"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 0 for address context zero (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 0)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_0_1
|
|
hex "Address context 0 Prefix 1"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 1 for address context 0 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 0)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_0_2
|
|
hex "Address context 0 Prefix 2"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 2 for address context 0 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 0)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_0_3
|
|
hex "Address context 0 Prefix 3"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 3 for address context 0 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 0)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_0_4
|
|
hex "Address context 0 Prefix 4"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 4 for address context 0 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 0)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_0_5
|
|
hex "Address context 0 Prefix 5"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 5 for address context 0 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 0)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_0_6
|
|
hex "Address context 0 Prefix 6"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 6 for address context 0 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 0)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_0_7
|
|
hex "Address context 0 Prefix 6"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 7 for address context 0 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 0)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREINIT_1
|
|
bool "Pre-initialize address context 1"
|
|
default n
|
|
---help---
|
|
Preinitialize address context 1 for better header compression
|
|
(Saves up to 13 bytes per 6lowpan packet). Assumes
|
|
CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 1)
|
|
|
|
if NET_6LOWPAN_MAXADDRCONTEXT_PREINIT_1
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_1_0
|
|
hex "Address context 1 Prefix 0"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 0 for address context 1 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 1)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_1_1
|
|
hex "Address context 1 Prefix 1"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 1 for address context 1 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 1)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_1_2
|
|
hex "Address context 1 Prefix 2"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 2 for address context 1 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 1)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_1_3
|
|
hex "Address context 1 Prefix 3"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 3 for address context 1 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 1)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_1_4
|
|
hex "Address context 1 Prefix 4"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 4 for address context 1 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 1)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_1_5
|
|
hex "Address context 1 Prefix 5"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 5 for address context 1 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 1)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_1_6
|
|
hex "Address context 1 Prefix 6"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 6 for address context 1 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 1)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_1_7
|
|
hex "Address context 1 Prefix 7"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 7 for address context 1 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 1)
|
|
|
|
endif # NET_6LOWPAN_MAXADDRCONTEXT_PREINIT_1
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREINIT_2
|
|
bool "Pre-initialize address context 2"
|
|
default n
|
|
depends on NET_6LOWPAN_MAXADDRCONTEXT_PREINIT_1
|
|
---help---
|
|
Preinitialize any address contexts for better header compression
|
|
(Saves up to 13 bytes per 6lowpan packet). Assumes
|
|
CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 2)
|
|
|
|
if NET_6LOWPAN_MAXADDRCONTEXT_PREINIT_2
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_2_0
|
|
hex "Address context 2 Prefix 0"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 0 for address context 2 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 2)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_2_1
|
|
hex "Address context 2 Prefix 1"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 1 for address context 2 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 2)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_2_2
|
|
hex "Address context 2 Prefix 2"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 2 for address context 2 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 2)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_2_3
|
|
hex "Address context 2 Prefix 3"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 3 for address context 2 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 2)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_2_4
|
|
hex "Address context 2 Prefix 4"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 4 for address context 2 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 2)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_2_5
|
|
hex "Address context 2 Prefix 5"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 5 for address context 2 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 2)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_2_6
|
|
hex "Address context 2 Prefix 6"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 6 for address context 2 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 2)
|
|
|
|
config NET_6LOWPAN_MAXADDRCONTEXT_PREFIX_2_7
|
|
hex "Address context 2 Prefix 7"
|
|
default 0xaa
|
|
---help---
|
|
Prefix 7 for address context 2 (assumes CONFIG_NET_6LOWPAN_MAXADDRCONTEXT >= 2)
|
|
|
|
endif # NET_6LOWPAN_MAXADDRCONTEXT_PREINIT_2
|
|
endif # NET_6LOWPAN_COMPRESSION_HC06
|
|
|
|
config NET_6LOWPAN_EXTENDEDADDR
|
|
bool "Extended IEEE 802.15.4 address"
|
|
default n
|
|
---help---
|
|
By default, a 2-byte short address is used for the IEEE802.15.4 MAC
|
|
device's link layer address. If this option is selected, then an
|
|
8-byte extended address will be used.
|
|
|
|
All devices operating on a network have unique, 8-byte addresses,
|
|
referred to as extended addresses. A device will use either the
|
|
extended address for direct communication within the PAN or the
|
|
short 2-byte address that was allocated by the PAN coordinator when
|
|
the device associated.
|
|
|
|
config NET_6LOWPAN_MAXAGE
|
|
int "Packet reassembly timeout"
|
|
default 20
|
|
---help---
|
|
Timeout for packet reassembly at the 6lowpan layer in units of
|
|
seconds (should be < 60s)
|
|
|
|
config NET_6LOWPAN_MAX_MACTRANSMITS
|
|
int "Max MAC transmissions"
|
|
default 4
|
|
range 1 255
|
|
---help---
|
|
CONFIG_NET_6LOWPAN_MAX_MACTRANSMITS specifies how many times the MAC
|
|
layer should resend packets if no link-layer ACK wasreceived. This
|
|
only makes sense with the csma_driver.
|
|
|
|
config NET_6LOWPAN_PKTSIZE
|
|
int "6LoWPAN packet buffer size"
|
|
default 1294
|
|
range 590 1518
|
|
---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).
|
|
|
|
NOTE that this option depends on fragmentation support. By
|
|
supporting fragmentation, we can handle quite large "logical" packet
|
|
sizes. Without fragmentation support, the MTU is equal to the frame
|
|
size and that has already been selected.
|
|
|
|
config NET_6LOWPAN_DUMPBUFFER
|
|
bool "Enable dumping of buffer data"
|
|
default n
|
|
depends on DEBUG_NET_INFO
|
|
---help---
|
|
Enable dumping of all packet and frame buffers coming into and out
|
|
of the 6LoWPAN logic. This will generate a large volume of data if
|
|
selected.
|
|
|
|
endif # NET_6LOWPAN
|