Skip to main content

Ethernet

Ethernet channels don't require any configuration by default. The Docker bridge driver is used to provide ECUs with a network interface on the subnet that's configured for the channel in the platform.

VLAN​

For channels that need 802.1Q-tagged VLAN packets you can use the remotivebus driver to manage the networking. It creates a Linux bridge with VLAN filtering and manages per-port VLAN rules automatically. The VLAN ID comes from the channel's vlan setting in the platform.

Containers receive a trunk interface that carries tagged VLAN traffic as well as a VLAN subinterface (e.g. eth0.100) that strips VLAN tags so the container sees plain Ethernet frames. If a container handles VLAN tagging itself, you can skip the VLAN subinterface.

RemotiveBus is available on Linux, including WSL on Windows. On macOS, run RemotiveTopology in a Linux virtual machine. You need to install RemotiveBus before using it.

Basic configuration​

To use VLAN, set remotivebus as the driver of the channel. This creates the network using the subnet and VLAN ID from the platform.

channels:
BodyEth:
type: ethernet
driver:
type: remotivebus

VLAN with physical device​

For more advanced configurations you can specify the names of the devices used inside the container and on the host. You can also specify physical network interfaces on the host that the network should be bridged to.

channels:
BodyEth:
type: ethernet
driver:
type: remotivebus
config:
device: eth0.10 # Interface name inside the container
host_bridge_device: rb0 # Bridge name on the host
host_physical_devices: [eth1] # Physical network interfaces added to the bridge
note

The bridge specified by host_bridge_device is created automatically by RemotiveBus. If a bridge with that name already exists on the host but wasn't created by RemotiveBus, network creation fails.

note

Multiple VLAN channels can share a bridge by using the same host_bridge_device name.

macvlan​

The Docker macvlan network driver can be used to map a physical device directly into the topology. It's supported since it's a Docker technology, but typically you should use the RemotiveBus driver instead.

channels:
BodyEth:
type: ethernet
driver:
type: macvlan
device_name: eth1

IP addresses​

Gateway​

Communication typically happens within each subnet, so you don't need to configure a gateway. If an ECU needs to route packets outside the subnet, Docker automatically provides a gateway for each network, and RemotiveTopology assigns it a free IP address.

Traffic that isn't sent on a specific network interface goes through the control network, which RemotiveTopology adds automatically.

If you need a specific gateway address, you can set it like this:

channels:
BodyEth:
type: ethernet
gateway_ip: 10.1.1.192

TopologyBroker​

Every topology includes a central TopologyBroker which coordinates the other brokers and also allows communication with most channels.

RemotiveTopology automatically assigns a free IP address to the TopologyBroker on each Ethernet channel. You only need to set it yourself if the assigned address is already taken, for example by external hosts on the network that aren't listed in the topology:

channels:
BodyEth:
type: ethernet
topology_broker_ip: 10.1.1.199