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_BLUETOOTH.

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.
