genode/repos/os
Martin Stein d5b1d9466a nic_router: clear ARP cache when domain is down
Whenever a domain looses all its interfaces or the link state of all attached
interfaces is down at once, the domain potentially moves to another Ethernet
segment and should therefore consider its ARP cache to be outdated.

RFC 826 states that "... If a host moves, any connections initiated by that
host will work, assuming its own address resolution table is cleared when it
moves. ...".

Therefore, this commit introduces clearing the ARP cache and the initially
stated events.

This commit was motivated by an issue with the PinePhone Modem and USB NIC.
On the PinePhone, the Modem has its own OS and acts as direct gateway to the
outer world for the USB NIC that is driven by Genode. However, whenever the
Modem gets restarted, Modem and USB NIC receive a new MAC address. This used
to conflict with the NIC routers ARP entry for the Modem that didn't cease to
be valid.

With this commit, the integrator of such a scenario at least has a convenient
way of fixing this by ensuring that all interfaces at the USB NIC domain go
down when resetting (e.g. by ensuring that the USB NIC is the only interface at
that domain).

Fixes #4558
2022-08-10 13:32:59 +02:00
..
doc Remove SIGNAL/CAP/RAM services from run scripts 2022-04-13 08:08:00 +02:00
include usb_host: handle control URBs asynchronously 2022-08-10 13:32:58 +02:00
lib vfs: implement plugin for 'Capture' session 2022-04-13 09:29:03 +02:00
recipes rtc_drv: log 'set time' message on verbose 2022-08-10 13:32:59 +02:00
run rtc_drv: log 'set time' message on verbose 2022-08-10 13:32:59 +02:00
src nic_router: clear ARP cache when domain is down 2022-08-10 13:32:59 +02:00
xsd Remove NIC server role from drivers 2022-05-25 12:19:31 +02:00
README API documentation refinements 2017-05-31 13:16:21 +02:00

This source-code repository contains genuine low-level OS components and
interfaces of Genode. It solely depends on the framework's base API.