293 lines
5.6 KiB
Plaintext
293 lines
5.6 KiB
Plaintext
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.
|