| 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 |
| |
| - Multicast join/leave support |
| |
| Priority: Low |
| Complexity: C2 |
| |
| Add support for sending joining and leaving multicast group. |
| See RFC 3810 and 4604 for details. |
| |
| - 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. |
| |
| |
| TCP |
| === |
| |
| - Core TCP support |
| |
| Priority: High |
| Complexity: C4 |
| |
| Add core / basic support for receiving and sending TCP |
| packets. This means that we should be able to initiate |
| the connection (client role) or receive a connection request |
| (server role). After the connection establishment, the |
| TCP data should be processed so that applications can receive |
| it. Application can use the net_context API for connection |
| establishment and shutdown, and for sending and receiving data. |
| |
| |
| 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. |