Skip to content
Stefan Schmidt edited this page Mar 1, 2017 · 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)
  • Write driver for MCR20A transceiver (Xue Liu is working on it)
  • Write driver for CC2420 transceiver (Xue Liu is working on it)
  • 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. (#20, #24)
  • Implement the 15.4 ethertype (RFC7973) (Stefan is working on it)

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)
  • Improve support for HardMAC drivers
  • Implement support for bigger frames (> 127 byte) defined in IEEE 802.15.4g

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) (Alexander is working on it)

Kernel 6LoWPAN implementation:

  • Add support for Generic Header Compression (RFC7400) (#6, #7, #8) (Stefan is working on it)
  • Support ieee802154 short addresses for 6LoWPAN
  • Finish up the RFC6775 implementation.
  • Move rx handling into generic 6LoWPAN (#17)

General networking stack

  • L2_PKTINFO for SOCK_RAW/SOCK_DGRAM IPv6 sockets (Alexander is working on it)
  • iptable 6lowpan handling which can also deal with some L2 infos like short and extended L2 addresses

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 if needed
  • 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)