genode/repos/os/include/net
Martin Stein ac42ade48c nic_router: remove use of exception handling
Remove the use of C++ exception as much as possible from the router as C++
exception handling can be resource intensive and can make code hard to
understand.

This also removes the garbage collection that the router used to do when a
session ran out of quota. This is motivated by the fact that the garbage
collection was rather simple and removed connection states regardless of their
current state, thereby causing broken connections. The change is part of this
commit as the approach to integrating garbage collection relied strongly on
exception handling.

The user story behind removing garbage collection: The router emergency-dropped
an established TCP connection (with NAPT) and on the next matching packet
re-created it with a different NAPT port, thereby breaking the connection. With
this commit, existing connections are prioritized over new ones during resource
exhaustion and the packets that attempt to create a new connection in such a
state are dropped with a warning in the log (verbose_packet_drop="yes").

Note that the state resolves itself with time as existing connections time out
or are closed by peers.

Ref #4729
2024-06-20 12:54:31 +02:00
..
arp.h net: use Size_guard for packet-data accessors 2018-05-30 13:36:11 +02:00
dhcp.h nic_router: remove use of exception handling 2024-06-20 12:54:31 +02:00
dns.h os/include/net: add support for the DNS protocol 2023-11-28 14:24:23 +01:00
ethernet.h net: add methods required for WireGuard port 2022-05-25 12:23:02 +02:00
icmp.h nic_router: incremental L4 checksum updates 2022-08-10 13:33:02 +02:00
internet_checksum.h nic_router: incremental L4 checksum updates 2022-08-10 13:33:02 +02:00
ipv4.h nic_router: no ICMP on unroutable IPv4 multicast 2022-08-17 12:26:01 +02:00
mac_address.h os: avoid implicit conversions 2021-12-17 15:04:45 +01:00
netaddress.h net: const Network_address source buffer 2023-06-16 11:24:26 +02:00
port.h net/port.h: default constructor 2024-06-20 12:54:30 +02:00
size_guard.h net: use Size_guard for packet-data accessors 2018-05-30 13:36:11 +02:00
sntp.h sntp_client: report received transmit timestamp 2019-08-21 12:37:02 +02:00
tcp.h nic_router: incremental L4 checksum updates 2022-08-10 13:33:02 +02:00
udp.h nic_router: incremental L4 checksum updates 2022-08-10 13:33:02 +02:00