Skip to content
Stefan Schmidt edited this page Nov 29, 2016 · 11 revisions

Project wide Todo list

On this page we list all the items we normally have in our head, in small text files on our hard drives or scribbled on a piece of paper next to our keyboards. :-) Only high level items are listed here, the details can be found in the linked GitHub issues which we use for tracking.

wpan-tools (userspaces configuration utilities)

  • Implement llsec kernel interface and expose it to the wpan-tools commandline (#2)
  • wpan-ping: adjust maximal packet length automatically based on given configuration (address size, crypto, etc) (#4)
  • PAN coordinator daemon to handle associated nodes, leases and configuration (depends on MAC command support in the kernel) (#5)

linux-wpan (Linux kernel implementation)

Kernel drivers:

  • Remove cb context from dev_hard_header and introduce generic header generation functions like header_ops. Here too, crypto need to be done at first.
  • Devicetree extended addr setting, draft is here ieee802154: add usual way to get extended address via device tree (#21)
  • Bring XBee out of tree driver into mainline (#1)
  • Change the cc2520 driver to xmit_async (#3)
  • Update atusb driver to latest ieee802154_ops (#4)
  • Write driver for Decawave DWM1000 module (#16)
  • Investigate if running the TIMAC firmware on the cc2531 and cc26xx chips exposes a useful interface that can be used to write a softmac or hardmac kernel driver for it.
  • Work on a generic USB and serial protocol and driver using the Service Access Point (SAP) API defined by the 802.15.4 spec as a starting point. This has the potential to be our Host Controller Interface and could be implemented in all kind of firmwares or even RTOS like RIOT, Contiki or Zephyr.

Kernel 802.15.4 socket interface:

  • Cleanup/fix 802.15.4 af raw/dgram socket code. We should use bluetooth socket code as example. (#20, #24)
  • Implement the 15.4 ethertype (RFC7973)

Kernel 802.15.4 SoftMAC layer:

  • New frame parsing style in mac802154 and ieee802154 based on mac80211 frame parsing design.
  • Support for beacon frames (#11)
  • Support for MAC command frames (#12)
  • Allow a node to scan for available PAN's (#13)
  • Allow a node to act as PAN coordinator (#14)

Kernel 802.15.4 netlink userspace interface:

  • In wireless exists a "station dump", we need something similar "node dump" with all neighbour nodes and their last LQI value, addresses, etc. information. (#6)

Kernel 6LoWPAN implementation:

  • Add support for Generic Header Compression (RFC7400) (#6, #7, #8)
  • Support ieee802154 short addresses for 6LoWPAN
  • RFC6775
  • Move rx handling into generic 6LoWPAN (#17)

Misc

  • On the 6LoWPAN side we need a configuration interface for all kind of compressions options (IPHC, NHC). A userspace utility is also needed for this and should not be bundled with wpan-tools as it should be generic for all kind of 6LoWPAN adaptation layers.
  • Support for raven usb stick inside ATUSB firwmare (code is done, awaits v0.3 release of the atusb firmware)
  • Develop firmware for CC2531 usb stick comparable to the ATUSB firmware
  • Research potential for IEEE 802.15.4e support inside Linux and work on a proof of concept (#9, #10)
  • Scapy-com for unit testing and fuzzing
  • Implement rfkill support (#15)
  • Implement led trigger support. An initial patch was done by Hydrazine, but progress stalled.
  • Cleanup return codes in stack (#18
  • Improve our fragmentation handling (#25, #27

Interoperability

  • Develop test cases for interop with RIOT
  • Develop test cases for interop with Contiki
  • Develop test cases for interop with Zephyr

External projects we might interface with

  • systemd: add basic functionality for nl802154 and 6LoWPAN setup in systemd-networkd
  • network-manager: add basic functionality for nl802154 and 6LoWPAN setup if needed (#22)
  • connman: add basic functionality for nl802154 and 6LoWPAN setup if needed (#23)
  • unstrung: RPL implementation.
Clone this wiki locally