Boot Linux faster!

Check our new training course

Boot Linux faster!

Check our new training course
and Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

Background
==========

This is a TODO list for networking related work.

- Priority scale: High, Medium and Low

- Complexity scale: C1, C2, C4 and C8.
   The complexity scale is exponential, with complexity 1 being the
   lowest complexity. Complexity is a function of both task 'complexity'
   and task 'scope'.


IPv6
====

- Anycast address support

   Priority: Low
   Complexity: C1

   Add support for Anycast addresses, RFC 3513

- ICMPv6 "Packet Too Big" support

   Priority: Low
   Complexity: C1

   Add support for sending "Packet Too Big" error when
   needed. RFC 4443

- IP-to-IP tunneling support

   Priority: Low
   Complexity: C4

   Add support for tunneling IPv6 traffic. This requires IPv6 L2
   driver that can encapsulate and decapsulate IPv6 traffic.
   See RFC 2473 for details.

- DHCPv6 client support

   Priority: Low
   Complexity: C4

   Add support for acting as a DHCPv6 in client role.
   See RFC 3315 and 3646 for details.


IPv4
====

- Multicast join/leave support

   Priority: Low
   Complexity: C2

   Add support for sending joining and leaving multicast group.
   See RFC 3376 and 4604 for details.


6LoWPAN
=======

- Mesh Header compression and uncompression

  Priority: Medium
  Complexicity: C4

  Add support for Mesh header compression and uncompression.

- Unicast-Prefix based IPv6 Multicast (dst) address compression

  Priority: Medium
  Complexicity: C2

  See RFC 6282, Chapter 3.1.1, if M = 1 and DAC = 1.

- Multicast Address Mapping

  Priority: Medium
  Complexicity: C2

  An IPv6 packet with a multicast destination address (DST),
  consisting of sixteen octets DST[1] through DST[16], is
  transmitted to the following 802.15.4 16-bit multicast address
  (See RFC 4944, Chapter 9).

- Frame Delivery in a Link-Layer Mesh

  Priority: Medium
  Complexicity: C2

  Defines how to effect delivery of layer 2 frames in a
  mesh, given a target "Final Destination" link-layer address.
  (See RFC 4944, Chapter 11).

- IPv6 Next Header Compression

  Priority: Medium
  Complexicity: C4

  LOWPAN_IPHC elides the IPv6 Next Header field when the NH bit is set
  to 1.  This also indicates the use of 6LoWPAN next header compression,
  LOWPAN_NHC (See RFC 6282, Chapter 4).


IEEE 802.15.4
=============

2011 version
------------

- CSMA-CA Radio protocol, time-slotted, support

  Priority: Low
  Complexity: C2

  Current CSMA-CA radio protocol implementation does not support
  time-slots.

- Management service: RFD level support

  Priority: High
  Complexity: C4

  Support Management service to align with RFD requirements.
  See Chapter 6.2

- Security support

  Priority: Medium
  Complexity: C4

  Support security, as detailed in Chapter 7.

- Management service: FFD level support

  Priority: Low
  Complexity: C4

  Support Management service to align with FFD requirements.
  See Chapter 6.2


2012-2015 versions
------------------

- IE list support

  Priority: Medium
  Complexity: C2

  Support newly added IE list which can be embedded into frames.

- Update existing Management commands

  Priority: Medium
  Complexity: C4

  Behavioral changes as well as improvements need to be applied
  to existing Management commands.

- TSCH Radio protocol support

  Priority: Medium
  Complexity: C2

  Add TSCH radio protocol as the latest radio protocol improvement.

- Multipurpose frame support

  Priority: Low
  Complexity: C2

  Add the means to parse or create Multipurpose frames.

- LLDN frame support

  Priority: Low
  Complexity: C2

  Add the means to parse or create LLDN frames.
  Is this needed however, since it requires true RT capabilities?


Bluetooth
=========

- Enable sample support

  Priority: High
  Complexity: C1

  Enable samples to use CONFIG_NET_L2_BT.

IP-based services
=================

- Simple Network Time Protocol

   Priority: Low
   Complexity: C4

   Create SNTP client functionality so that applications can use
   SNTP to query current time.

- Basic HTTP server support

   Priority: Low
   Complexity: C4

   Create a simple HTTP server for demo / diagnostic purposes.

- IPSO (IP Smart Object) support

   Priority: Low
   Complexity: C8

   Create support for IPSO.

- LWM2M support

   Priority: Low
   Complexity: C4

   Create support for OMA LWM2M protocol.

- Simple Network Management Protocol support

   Priority: Low
   Complexity: C8

   Create support for SNMP for managing the node.
   See RFC 1902 and 2863 for details.


Documentation
=============

- Network device driver documentation

   Priority: Medium
   Complexity: C2

   Create documentation for the developer how to create networking
   device drivers using the new IP stack.


Testing
=======

Here are some generic guidelines for network testing.

- Unit tests

   Priority: High
   Complexity: <unknown>

   Each new networking feature should have proper unit
   test created. These tests should be located under the
   tests/net directory. The tests should be integrated
   to the Continuous Integration (CI) infrastructure so
   that they are run automatically.

- End-to-end networking tests

   Priority: High
   Complexity: C8

   Create / port testing infrastructure for conformance
   testing. For example TAHI framework for IPv6 could be
   used to test IPv6 functionality, see www.ipv6ready.org
   for details.
   This entry should be split more to include various
   network testing frameworks.


CAN
===

CAN (Controller Area Network) is a networking technology
which is used in automation, embedded devices, and
automotive fields.

- Implement CAN support

  Priority: Medium
  Complexity: C8

  This is a placeholder for CAN support and should be
  split into smaller pieces.