Dear Alex,

On 21.10.19 15:56, Alexandre Petrescu wrote:
Hi,

Might be appropriate to run this through the IPWAVE WG, too.

Although CAN is mostly known for its use in the automotive domain, I didn't target automotive applications. I got the idea for 6LoCAN while I was thinking about using CAN for building automation. Nevertheless, posting a message about the draft to the IPWAVE group is a good idea.
Thanks for pointing me towards this WG.

One question that comes to mind is how to make sure that the QoS of an IP packet on 802.11-OCB (wireless outside the car) is mapped to the right QoS of an IP packet on CAN inside the car.  This would help to send an IP packet from a Remote Controller straight into the brake of the car, with the appropriate priority and given the necessary credentials.

Generally, CAN frames are prioritized by their frame identifier.
Lower number identifiers have precedence over higher numbers.
The identifier is composed by the destination "node address" and the sender "node address" and does not contain any QoS measurements. There is a time-slicing protocol called TTCAN (Time-Triggered CAN), where hard real-time can be assured. 6LoCAN does not consider TTCAN and therefore has no guarantees for a reliable QoS.

I want to ask you whether the CAN has a notion of CAN address and if yes, on how many bits is it represented (16?)?  This might help in thinking about how to form an Interface ID to be used with SLAAC on CAN.  One may think that should be 64bit, but I think not necessarily.

Usually, CAN uses identifiers, identifying the content of the frame instead of address identifying nodes. These identifiers can either have a length of 11 bits or 29 bits. 6LoCAN uses 29 bits identifiers only. Section 2 (Addressing) defines the way to form identifiers from the destination- and source-node-address. The node address has a length of 14 bits. M is the multicast-bit and indicates to threat the first 14-bit field as a multicast-group instead of a destination address.

    0|0            1|1            2|
    0|1            4|5            8|
   +-+--------------+--------------+
   |M|     DEST     |     SRC      |
   +-+--------------+--------------+
Figure 1: Addressing Scheme

Section 4 (Stateless Address Autoconfiguration) specifies how the interface ID is formed from the 14-bit node-address. See RFC4291 for more details. The reason why 6LoCAN uses a 14-bit node-address is that a frame-identifier must always be unique on the bus. A unique identifier can be guaranteed by combining the unique source- and destination-node-address. A violation of this rule would cause collisions outside the arbitration field that can't be resolved.

Despite this limited address-space of 14 bits, a random address assignment is possible due to a Link-Layer Duplicate Address Detection (LLDAD), defined in section 3.

I want to ask you whether you think that the end to end principle is a good thing for the Internet, and if yes, whether Ethernet Border Translators might have an impact on that principle.

The Ethernet Border Translator is optional for a 6LoCAN network.
I designed the Border Translator out of the lack of router capabilities of the Zephyr RTOS. This principle allows pushing complexity towards already existing network equipment and infrastructure.

Sincerely,

Alexander


Le 17/10/2019 à 17:25, Alexander Wachter a écrit :
Dear 6Lo WG,

I recently submitted a draft for IPv6 over Controller Area Network and would like to call for adoption by the 6Lo WG.
The title of the document is draft-wachter-6lo-can-00 [1].

Controller Area Network (CAN) is a widely used field bus initially designed for the automotive domain. It has a payload length of eight bytes for classic CAN and 64 bytes for CAN-FD. CAN only describes the data-link-layer, but various protocols already exist on top. The submitted draft introduces IPv6 over CAN (6LoCAN),  a 6lo-adaption-layer to send IPv6 packets over the constrained CAN-bus. 6LoCAN uses a subset of the already widely used ISO-TP standard for fragmentation and reassembly to meet the 1280 minimum MTU requirement of IPv6. It also uses the IPHC (RFC6282) to reduce the protocol overhead of IPv6.

A broad range of devices, from small and cheap MCUs to big application processors, already have CAN controllers onboard. With 6LoCAN, it is possible to create networks of resource-constrained MCUs that can leverage the broad range of protocols and security mechanisms built on top of the IP. Additionally, multiple 6LoCAN networks can be connected together or even to the internet by utilizing the routing capabilities of IP networks.

A reference implementation of 6LoCAN already exists in the mainline Zephyrproject RTOS [2] tree. It includes a sample server-client application. The source for it is located under [3] and can be used on any boards supporting CAN.

I am looking forward to your comments on the draft.

Kind regards,
Alexander

[1] https://datatracker.ietf.org/doc/draft-wachter-6lo-can/
[2] https://www.zephyrproject.org/
[3] https://github.com/zephyrproject-rtos/zephyr/tree/master/samples/net/sockets/echo_client


_______________________________________________
6lo mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/6lo

_______________________________________________
6lo mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/6lo

Reply via email to