Ein Switch hat die Aufgabe, Ethernet-Pakete auf Layer 2 gemäß OSI-Kommunikationsmodell unter Einhaltung konfigurierbarer Quality-of-Service-Anforderungen (QoS) weiterzuleiten und Zusatzdienste wie Uhrensynchronisation anzubieten. Wird diese Definition auf das abstrakte Modell der Anbindung von virtuellen Maschinen angewendet, so entspricht das einem solchen Switch. Aufgrund der Tatsache, dass es sich einerseits um die Anbindung von VMs und andererseits um eine Funktion handelt, die nicht notwendigerweise vollständig von der Hardware erfüllt werden muss, wird im Folgenden die Funktion zur Anbindung von VMs an das Automotive-Ethernet-Netzwerk Virtual Switch genannt.
Die bisherigen Überlegungen führen zu drei Möglichkeiten des zugrundeliegenden Designs eines solchen Virtual Switch (Bild 4):
Bei der ersten Variante, einer Server-ECU mit nur einer Ethernet-Interface-Hardware, ist es die Aufgabe des Virtual Switch, die Ethernet-Schnittstelle zwischen den VMs aufzuteilen.
Diese Funktion lässt sich mit Bordmitteln von Linux erreichen, indem eine dezidierte VM mit Linux als Ethernet-Bridge instanziiert wird (Eth-Bridge-VM). Diese virtuelle Maschine bekommt exklusiven Zugriff auf die Ethernet-Hardware und darf Daten nach außen senden und empfangen. Die interne Verteilung zu den einzelnen VMs erfolgt dabei über den Hypervisor mit Kopieroperationen in der Eth-Bridge-VM. Letzteres ist notwendig, weil der Hypervisor die Abschirmung der VMs untereinander gewährleisten muss. Diese Variante ist einfach umsetzbar, aber sehr ineffizient, weil neben der Bereitstellung einer eigenen Eth-Bridge-VM auch noch CPU-Zeit für das Kopieren der Daten benötigt wird. Darüber hinaus ist die Erfüllung der anderen, oben angeführten Anforderungen schwierig oder nur mit erheblichem Zusatzaufwand umsetzbar.
Effizienter ist eine Implementierung, die das Senden und Empfangen durch die Nutzung mehrerer DMA-Kanäle der Ethernet-Interface-Hardware und somit ohne Kopieroperationen der CPU erledigt (EB corbos Virtual Ethernet Switch). Für die Kommunikation zwischen den VMs und das Weiterleiten von Broadcast- oder Multicast-Nachrichten an alle oder mehrere VMs nutzt der Virtual Switch einen lokalen DMA-Controller (User DMA). Dabei muss der der Virtual Switch nicht notwendigerweise eine Funktion des Hypervisor sein – vielmehr kann er auch in einem Safety Core ausgeführt werden.
In Variante 2 gibt es für jede VM eine eigene, über den Hypervisor direkt zugewiesene Ethernet-Interface-Hardware und einen eigenen Ethernet-Switch-Anschluss. Diese einfache, aber wenig skalierbare und recht teure Variante entspricht vom Aufbau her Bild 2. In jeder virtuellen Maschine gibt es einen Ethernet-Treiber zur direkten Ansteuerung der eigenen Ethernet-Interface-Hardware. Die Kommunikation zwischen den VMs erfolgt über den angeschlossenen Ethernet-Switch.
Bei der dritten Variante stellt ein integrierter oder eng gekoppelter Hardware-Ethernet-Switch jeder VM einen eigenen Host-Port (HP) zur Verfügung, wie in Bild 4 rechts zu sehen ist. Ein externer Switch wird dabei über PCIe mit dem SoC verbunden. Besonders vorteilhaft ist hier die Anbindung über die PCIe-Erweiterung Single-Root Input-Output-Virtualization (SR-IOV). Einem eigenen Host-Port entsprechend wird hier jeder VM eine eigene virtuelle Funktion bereitgestellt (Bild 5, VirtFun). Damit kann der Virtual Switch das Senden und Empfangen unter Einhaltung aller Anforderungen für jede VM über getrennte DMA-Kanäle direkt über die schnelle PCIe-Verbindung durchführen.
Zur Bewältigung der wachsenden Komplexität und um eine höhere Flexibilität und Skalierbarkeit zu erreichen, ergibt sich die Notwendigkeit der Virtualisierung auf Server-ECUs.
Für die Ethernet-Anbindung der virtuellen Maschinen stehen grundsätzlich drei Hardware-Varianten zur Wahl. Die Tabelle stellt diese Varianten gegenüber und bewertet sie speziell im Hinblick auf die Aspekte Komplexität, Ressourcen-Effizienz, Skalierbarkeit und Performance. Mit seinen Produktlinien EB tresos und EB corbos bietet Elektrobit für alle diese Varianten eine effiziente Software-Lösung an.
Die Autoren
Dr. Georg Gaderer
ist Technology Team Manager bei Elektrobit. Zu den Aufgaben seines Teams zählt die Entwicklung von Produkten für die effiziente Nutzung von Kommunikationshardware wie Ethernet Switches und Ethernet Controller.
Dr. Michael Ziehensack
ist als Managing Director von Elektrobit Austria für den Standort Wien mit dem Schwerpunkt Automotive Networks verantwortlich.