Setting up a wired network

Renode allows you to create complex network topologies using the Monitor.

Both wired and wireless networks can coexist, but are created with different commands.

Creating a switch

Wired network interfaces can be connected via switches. Depending on the desired topology, you can create one or more switches and attach interfaces accordingly.

The network traffic is not affected by the number of nodes connected to one switch.

To create a switch named switch1, run:

(monitor) emulation CreateSwitch "switch1"

Connecting interfaces

To connect an interface to a switch you have to set a proper machine context.

Then, use the connector mechanism to attach the interface:

(machine-0) connector Connect sysbus.ethernet switch1

Although it is not a common setup, each interface can be connected to many switches at the same time.

Disconnecting interfaces

You can disconnect network interfaces from a switch by running:

(machine-0) connector Disconnect sysbus.ethernet switch1

To disconnect from all connected switches, use:

(machine-0) connector DisconnectFromAll sysbus.ethernet

Starting the interface

A Switch object is created as “paused”. To enable communication via a switch you must start it manually, either by running:

(monitor) start

or, if your emulation is already started, with:

(monitor) switch1 Start

Controlling the traffic

If a packet has a specified destination MAC address, the switch will try to deliver it to the appropriate interface. If, however, the address is not set or the switch is not aware of an interface with this MAC, the packet is broadcast to all connected interfaces.

You can alter this behavior by enabling promiscuous mode for a specified interface:

(machine-0) switch1 EnablePromiscuousMode sysbus.ethernet

After this command, the sysbus.ethernet interface will receive all packets delivered to switch1 from other interfaces.

To disable promiscuous mode, run:

(machine-0) switch1 DisablePromiscuousMode sysbus.ethernet

Last update: 2024-10-02