# Automotive COTS L3 Ethernet router with IGMP and TSN support

**URL:** <https://forum.opencyphal.org/t/automotive-cots-l3-ethernet-router-with-igmp-and-tsn-support/1465>\
**Category:** Development & Maintenance\
**Created:** [September 28, 2021, 10:32am UTC](https://forum.opencyphal.org/t/automotive-cots-l3-ethernet-router-with-igmp-and-tsn-support/1465 "2021-09-28T10:32:52Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![pavel.kirienko](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/pavel.kirienko/32/9_2.png) [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Post date:** [September 28, 2021, 10:32am UTC](https://forum.opencyphal.org/t/automotive-cots-l3-ethernet-router-with-igmp-and-tsn-support/1465/1 "2021-09-28T10:32:52Z")

</div>

There is no such thing out there, is there?

The best I could find is a die-hard DIY option based on an L2 switch IC like Microchip’s [KSZ8567](https://www.microchip.com/en-us/product/KSZ8567) (or similar) or NXP’s [SJA1105](https://www.nxp.com/products/interfaces/ethernet-/automotive-ethernet-switches/sja1105pel-qel-rel-sel-series-ethernet-switches:SJA1105PQRS) family. Being L2 devices, they are unable to manage IGMP (or any other protocol for that matter) at L3 and above (makes sense).

KSZ8567, for instance, captures IGMP packets and forwards them to the host port, where there is expected to be a computing device (an MCU perhaps) responsible for managing the IGMP state machine at L3. SJA1105 doesn’t really mention IGMP in its documentation at all, which is also fair for an L2 solution.

I am perhaps missing something here, so any tips would be welcome.

---

<div class="post-metadata">

**Author:** ![scottdixon](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/scottdixon/32/39_2.png) [@scottdixon](https://forum.opencyphal.org/u/scottdixon)\
**Post date:** [September 28, 2021, 6:18pm UTC](https://forum.opencyphal.org/t/automotive-cots-l3-ethernet-router-with-igmp-and-tsn-support/1465/2 "2021-09-28T18:18:13Z")

</div>

Not sure how IGMP works with the TSN suite but if you are interested in how bandwidth allocation is handled take a look at 802.1Qcc-2018

---

<div class="post-metadata">

**Author:** ![davidbitton](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/davidbitton/32/103_2.png) [@davidbitton](https://forum.opencyphal.org/u/davidbitton)\
**Post date:** [September 30, 2021, 12:42pm UTC](https://forum.opencyphal.org/t/automotive-cots-l3-ethernet-router-with-igmp-and-tsn-support/1465/3 "2021-09-30T12:42:39Z")

</div>

I came across this chip from Broadcom. The [BCM8956X](https://tro.pe/3inH6lF) _appears_ to cover your requirements.

---

<div class="post-metadata">

**Author:** ![pavel.kirienko](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/pavel.kirienko/32/9_2.png) [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Post date:** [September 30, 2021, 12:51pm UTC](https://forum.opencyphal.org/t/automotive-cots-l3-ethernet-router-with-igmp-and-tsn-support/1465/4 "2021-09-30T12:51:23Z")

</div>

> [@davidbitton](#):
>
> The [BCM8956X](https://tro.pe/3inH6lF) _appears_ to cover your requirements.

Interesting. At a first glance it seems rather similar to the Microchip option, but it’s hard to tell. I filled out the info request form to give it a closer look.

> [@scottdixon](#):
>
> how IGMP works with the TSN suite

I don’t expect TSN and IGMP to manage the same traffic, these are independent requirements.

I’ve been looking at AVB/TSN since you first mentioned it a rather long time ago and I wish we could dedicate some attention to it. Recent advances on the Ethernet side of things in UAV might create a good opportunity to prioritize this.

---

<div class="post-metadata">

**Author:** ![scottdixon](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/scottdixon/32/39_2.png) [@scottdixon](https://forum.opencyphal.org/u/scottdixon)\
**Post date:** [September 30, 2021, 4:22pm UTC](https://forum.opencyphal.org/t/automotive-cots-l3-ethernet-router-with-igmp-and-tsn-support/1465/5 "2021-09-30T16:22:29Z")

</div>

Perhaps we can ask @iain.galloway to donate a couple SJA1110 eval kits to the UAVCAN effort?

Similarly, if there’s anyone that is willing to do actual UAVCAN v1 experiments using 802.3cg I’d be willing to buy the dev kits for that.

---

<div class="post-metadata">

**Author:** ![scottdixon](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/scottdixon/32/39_2.png) [@scottdixon](https://forum.opencyphal.org/u/scottdixon)\
**Post date:** [September 30, 2021, 4:32pm UTC](https://forum.opencyphal.org/t/automotive-cots-l3-ethernet-router-with-igmp-and-tsn-support/1465/6 "2021-09-30T16:32:08Z")

</div>

“IEEE AVB protocol stack (IEEE 802.1AS Time Synchronization and IEEE 802.1Qat SRP)” is pretty thin information. Some of the most interesting parts of the TSN standards are as new as 2020 (e.g. 802.1AS-2020 supporting redundant gPTP time domains) so you have to dive deep into these parts to see what they really mean by “AVB” or “TSN”. Anything that is older than 2018 is probably missing critical features for high-criticality networks.

These standards started to support audio and video but it wasn’t until the 2012 renaming and refocus of the AVB task force that reliability was properly considered (i.e. audio and video care about timing but not as much about reliability at the level that, say, a drive-by-wire system cares)

---

<div class="post-metadata">

**Author:** ![davidbitton](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/davidbitton/32/103_2.png) [@davidbitton](https://forum.opencyphal.org/u/davidbitton)\
**Post date:** [September 30, 2021, 4:36pm UTC](https://forum.opencyphal.org/t/automotive-cots-l3-ethernet-router-with-igmp-and-tsn-support/1465/7 "2021-09-30T16:36:59Z")

</div>

What would be the scenario over Ethernet? Would it be UAVCAN packets over Ethernet, or MAVLINK packets? I see numerous CAN to Ethernet bridges too. Will this require adding a TCP/IP stack to Ardupilot? Is it just [CAN over Ethernet](https://tro.pe/2XZ7Cum)?

---

<div class="post-metadata">

**Author:** ![scottdixon](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/scottdixon/32/39_2.png) [@scottdixon](https://forum.opencyphal.org/u/scottdixon)\
**Post date:** [September 30, 2021, 5:13pm UTC](https://forum.opencyphal.org/t/automotive-cots-l3-ethernet-router-with-igmp-and-tsn-support/1465/8 "2021-09-30T17:13:49Z")

</div>

There are two configurations using Ethernet that are interesting.

1. UC1/UDP/TSN is a good, light-weight replacement for systems that would otherwise consider DDS.
2. UC1/UDP/[CAN OR 802.3cg] is a really compelling story for both heterogenous redundancy (aka “dissimilarity”) and as a migration strategy for automotive systems that are evolving away from CAN and towards automotive ethernet.

For all these cases UC1 provides a stable application layer on the network allowing the platform to evolve independently. Basically, this is what I think the future could look like:

 ![UC1-tsn](https://forum.opencyphal.org/uploads/default/original/1X/da259beedcc9fcb31af5b0a34d315047fff6f4db.png)

---

<div class="post-metadata">

**Author:** ![pavel.kirienko](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/pavel.kirienko/32/9_2.png) [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Post date:** [September 30, 2021, 5:56pm UTC](https://forum.opencyphal.org/t/automotive-cots-l3-ethernet-router-with-igmp-and-tsn-support/1465/9 "2021-09-30T17:56:16Z")

</div>

> [@scottdixon](#):
>
> There are two configurations using Ethernet that are interesting.

This is very sensible but I would prefer to avoid making TSN a hard requirement to avoid losing a significant portion of non-critical/soft-real-time/experimental systems that can tolerate the conventional IGMP multicast. So far I don’t see any problem with making the transport compatible with either TSN or traditional multicast by means of a simple switch without altering the UDP packet format.

> [@davidbitton](#):
>
> What would be the scenario over Ethernet? Would it be UAVCAN packets over Ethernet, or MAVLINK packets? I see numerous CAN to Ethernet bridges too. Will this require adding a TCP/IP stack to Ardupilot? Is it just [CAN over Ethernet](https://tro.pe/2XZ7Cum)?

This is not really related to CAN at all (and certainly not related to MAVLink which is a separate application-layer protocol). You may be missing this context:

- [Alternative transport protocols in UAVCAN](https://forum.opencyphal.org/t/alternative-transport-protocols-in-uavcan/324)
- [https://pyuavcan.readthedocs.io/en/stable/api/pyuavcan.transport.udp.html](https://pyuavcan.readthedocs.io/en/stable/api/pyuavcan.transport.udp.html)

TCP/IP is currently not leveraged by UAVCAN and there are no plans to change that at the moment.

---

<div class="post-metadata">

**Author:** ![davidbitton](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/davidbitton/32/103_2.png) [@davidbitton](https://forum.opencyphal.org/u/davidbitton)\
**Post date:** [September 30, 2021, 6:17pm UTC](https://forum.opencyphal.org/t/automotive-cots-l3-ethernet-router-with-igmp-and-tsn-support/1465/10 "2021-09-30T18:17:06Z")

</div>

I understand. I just looked to see if I could use a Matek H743 board, but all of the RMII ports are tied up.

---

<div class="post-metadata">

**Author:** ![dk7xe.g](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/dk7xe.g/32/896_2.png) [@dk7xe.g](https://forum.opencyphal.org/u/dk7xe.g)\
**Post date:** [October 4, 2021, 5:41pm UTC](https://forum.opencyphal.org/t/automotive-cots-l3-ethernet-router-with-igmp-and-tsn-support/1465/11 "2021-10-04T17:41:50Z")

</div>

@pavel.kirienko there will be a development board out soon with 50x80mm size based on NXP’s SJA1110 havin 6 100base-T1 (automotive 2 wire ethernet) , one 100base-TX on RJ45 and one 1000base-TX on a iX connector.

I’m using it on all of my test drones to connect the FMUK66 to the NavQ companion as well as to the T1 802.11p D2X data modem since a while.

> **[SJA1110 TSN Ethernet Switch](https://www.nxp.com/products/interfaces/ethernet-/automotive-ethernet-switches/multi-gig-safe-and-secure-tsn-ethernet-switch-with-integrated-100base-t1-phys:SJA1110)**
>
> The NXP SJA1110 is a family of four pin-and-software compatible automotive Ethernet Switch SoC offering a scalable solution for all automotive applications.

---

<div class="post-metadata">

**Author:** ![pavel.kirienko](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/pavel.kirienko/32/9_2.png) [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Post date:** [October 4, 2021, 5:45pm UTC](https://forum.opencyphal.org/t/automotive-cots-l3-ethernet-router-with-igmp-and-tsn-support/1465/12 "2021-10-04T17:45:17Z")

</div>

Cool. Should we expect native support of 802.1Qcc as well?

---

<div class="post-metadata">

**Author:** ![iain.galloway](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/iain.galloway/32/25_2.png) [@iain.galloway](https://forum.opencyphal.org/u/iain.galloway)\
**Post date:** [October 4, 2021, 6:10pm UTC](https://forum.opencyphal.org/t/automotive-cots-l3-ethernet-router-with-igmp-and-tsn-support/1465/13 "2021-10-04T18:10:49Z")

</div>

@pavel.kirienko  
The SJA1110 EVB likely supports this type of development.  
Once software is arranged and tested, it could be moved to the MR-T1ETH8 application example board that @dk7xe.g mentioned.

[https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/wired-communications-middleware-for-nxp-microcontrollers:WIRED-COMM-MIDDLEWARE#avb-tsn](https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/wired-communications-middleware-for-nxp-microcontrollers:WIRED-COMM-MIDDLEWARE#avb-tsn)

The TSN package provides:

- gPTP stack (IEEE 802.1AS-2011)
- Enhancements for scheduled traffic API’s (IEEE 802.1Q-2018, section 8.6.8.4)
- Frame preemption API’s (IEEE 802.1Qbu-2016 and IEEE 802.3br-2016)
- Multiple VLAN reservation protocol (MVRP) stack (IEEE 802.1Q-2018, section 11)
- Stream reservation protocol (SRP) stack (IEEE 802.1Q-2018, section 35)
- Layer 2 socket API
- gPTP based clock and timer API’s
- OS abstraction layer

---

<div class="post-metadata">

**Author:** ![iain.galloway](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/iain.galloway/32/25_2.png) [@iain.galloway](https://forum.opencyphal.org/u/iain.galloway)\
**Post date:** [October 4, 2021, 6:18pm UTC](https://forum.opencyphal.org/t/automotive-cots-l3-ethernet-router-with-igmp-and-tsn-support/1465/14 "2021-10-04T18:18:57Z")

</div>

This is the MR-T1ETH8 board using the SJA1110 the NXP Mobile Robotics team is preparing. 6x T1, 1x Gigabit on IX Industrial connector, 1x 100BaseT on RJ45, Secure element on board with NFC for potential provisioning keys into a system.

It is fully built and tested, just need to get it through the process to have it available to sell.

 ![image](https://forum.opencyphal.org/uploads/default/original/1X/012a4d20001f145832d9ebd8128cd0c23ef03b93.jpeg)  
 ![image](https://forum.opencyphal.org/uploads/default/original/1X/1e15424e5ea9080b31968eab1019a661edaf282b.jpeg)
