123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- #
- # For a description of the syntax of this configuration file,
- # see the file kconfig-language.txt in the NuttX tools repository.
- #
- menuconfig WIRELESS_IEEE802154
- bool "IEEE 802.15.4 Support"
- default n
- select MM_IOB
- depends on WIRELESS
- ---help---
- Enables a Media Access Controller for any IEEE802.15.4 radio
- device. This in turn can be used by higher layer entities
- such as 6lowpan.
- if WIRELESS_IEEE802154
- config IEEE802154_PRIMITIVE_PREALLOC
- int "Number of pre-allocated primitive structures"
- default 20
- ---help---
- This specifies the total number of preallocated primitive structures.
- A primitive is an abstracted data type that provides service information
- between the MAC layer and the next highest layer. These may be allocated
- from either from tasking logic or from interrupt level logic.
- config IEEE802154_PRIMITIVE_IRQRESERVE
- int "Reserved pre-allocated primitive structures"
- default 0
- depends on EXPERIMENTAL
- ---help---
- If primitives can be allocated from interrupt handlers, then this
- specifies the number of pre-allocated meta-data structures that are
- reserved for for use only by interrupt handlers. This may be zero to
- reserve no meta-data structures for interrupt handlers. In that case,
- the allocation will fail if tasking logic has allocated them all.
- Interrupt logic will first attempt to allocate from the general,
- pre-allocated structure pool that will contain up to (size
- CONFIG_IEEE802154_PRIMITIVE_PREALLOC - CONFIG_IEEE802154_PRIMITIVE_IRQRESERVE)
- entries. If that fails, then it will try to take a structure from
- the reserve (size CONFIG_IEEE802154_PRIMITIVE_IRQRESERVE).
- Non-interrupt logic will also first attempt to allocate from the
- general, pre-allocated structure pool. If that fails, it will
- dynamically allocate the primitive with an additional cost in performance.
- NOTE: Currently marked as experimental and with a default of zero
- because there are no interrupt level allocations performed by the
- current IEEE 802.15.4 MAC code.
- config IEEE802154_MAC
- bool "Software MAC layer"
- default n
- ---help---
- There are two types of IEEE 802.15.4 radios supported. Those that provide
- all MAC functionality equivalent to the MAC802154 software implementation,
- and radios that provide a lower half to the MAC802154 software layer.
- This option enables the software MAC layer that can interface with
- the lower-half radio drivers.
- if IEEE802154_MAC
- config MAC802154_NTXDESC
- int "Number or TX descriptors"
- default 5
- ---help---
- Configured number of Tx descriptors. Default: 3
- When used with 6LoWPAN, the descriptor allocator runs on a work
- and must avoid blocking if possible. Each frame will be provided in
- an IOB and each TX frame will need a TX descriptor. So the safe
- thing to do is set CONFIG_MAC802154_NTXDESC to CONFIG_IOB_NBUFFERS.
- Then there should be the maximum pre-allocated buffers for each
- possible TX frame.
- config MAC802154_NPANDESC
- int "Number of PAN descriptors"
- default 5
- ---help---
- Configured number of PAN descriptors Default: 5
- When performing a scan to find a suitable PAN, the MAC must store
- information for all unique beacons received. This is the number of unique
- descriptors that can be held before the scan cancels with LIMIT_REACHED.
- config MAC802154_SFEVENT_VERBOSE
- bool "Verbose logging related to superframe events"
- default n
- depends on DEBUG_WIRELESS_INFO
- ---help---
- Enable verbose logging of superframe events Default: false
- config MAC802154_LOCK_VERBOSE
- bool "Verbose logging related to MAC lock management"
- default n
- depends on DEBUG_WIRELESS_INFO
- ---help---
- Enable verbose logging of MAC lock management. Default: false
- config IEEE802154_MACDEV
- bool "Character driver for IEEE 802.15.4 MAC layer"
- default n
- depends on WIRELESS_IEEE802154
- ---help---
- Enable the device driver to expose the IEEE 802.15.4 MAC layer
- access to user space as IOCTLs
- if IEEE802154_MACDEV
- config IEEE802154_MACDEV_RECVRPRIO
- int "Priority of frame receiver registerd with the MAC layer"
- default 0
- ---help---
- When the MAC layer receives an incoming data frame, it passes the frame
- to registered receivers, in order of receiver priority, until one of the
- receivers claim the frame.
- An example case would be when 6LoWPAN and the MAC character driver are
- enabled. Both have receivers registered with the MAC. The 6LoWPAN layer
- should get assigned a higher priority than the character driver. In this
- case, the 6LoWPAN receiver will receive the frame first. If the frame is
- a 6LoWPAN frame, it will claim the frame and the MAC will not pass the
- frame to any additional receivers. If it does not claim the frame, the
- MAC layer will call the next highest priority receiver, in this case,
- the MAC character driver (which should always be lowest priority since
- it is a "catch-all" type receiver).
- endif # IEEE802154_MACDEV
- config IEEE802154_NETDEV
- bool "IEEE802154 6LoWPAN Network Device"
- default n
- depends on NET_6LOWPAN || NET_IEEE802154
- select ARCH_HAVE_NETDEV_STATISTICS
- ---help---
- Add support for the IEEE802.15.4 6LoWPAN network device built on
- the common IEEE802.15.4 MAC.
- if IEEE802154_NETDEV
- config IEEE802154_NETDEV_RECVRPRIO
- int "Priority of frame receiver registerd with the MAC layer"
- default 1
- ---help---
- When the MAC layer receives an incoming data frame, it passes the frame
- to registered receivers, in order of receiver priority, until one of the
- receivers claim the frame.
- An example case would be when 6LoWPAN and the MAC character driver are
- enabled. Both have receivers registered with the MAC. The 6LoWPAN layer
- should get assigned a higher priority than the character driver. In this
- case, the 6LoWPAN receiver will receive the frame first. If the frame is
- a 6LoWPAN frame, it will claim the frame and the MAC will not pass the
- frame to any additional receivers. If it does not claim the frame, the
- MAC layer will call the next highest priority receiver, in this case,
- the MAC character driver (which should always be lowest priority since
- it is a "catch-all" type receiver).
- config IEEE802154_NETDEV_DEFAULT_PREFIX_0
- hex "IPv6 Prefix 0"
- default 0xfe80
- ---help---
- First section of IPv6 Prefix
- config IEEE802154_NETDEV_DEFAULT_PREFIX_1
- hex "IPv6 Prefix 1"
- default 0x0000
- ---help---
- Second section of IPv6 Prefix
- config IEEE802154_NETDEV_DEFAULT_PREFIX_2
- hex "IPv6 Prefix 2"
- default 0x0000
- ---help---
- Third section of IPv6 Prefix
- config IEEE802154_NETDEV_DEFAULT_PREFIX_3
- hex "IPv6 Prefix 3"
- default 0x0000
- ---help---
- Fourth section of IPv6 Prefix
- endif # IEEE802154_NETDEV
- endif # IEEE802154_MACDEV
- config IEEE802154_LOOPBACK
- bool "IEEE802154 6LoWPAN Loopback"
- default n
- depends on NET_6LOWPAN || NET_IEEE802154
- select ARCH_HAVE_NETDEV_STATISTICS
- ---help---
- Add support for the IEEE802.15.4 6LoWPAN Loopback test device.
- if IEEE802154_LOOPBACK
- endif # IEEE802154_LOOPBACK
- endif # WIRELESS_IEEE802154
|