mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-25 00:11:07 +00:00
ac42ade48c
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 |
||
---|---|---|
.. | ||
arp.h | ||
dhcp.h | ||
dns.h | ||
ethernet.h | ||
icmp.h | ||
internet_checksum.h | ||
ipv4.h | ||
mac_address.h | ||
netaddress.h | ||
port.h | ||
size_guard.h | ||
sntp.h | ||
tcp.h | ||
udp.h |