inetstack
inetstack copied to clipboard
Demikernel's TCP/UDP Stack
Description ======== In `protocols::tcp::established::ControlBlock::receive_data()` and potentially everywhere, we are casting fixed sizes to `usize` to perform some checks. We should do the other way around.
# Description In `protocols::tcp::peer:TcpPeer::connect()` we should free ephemeral ports once an active connection is closed.
Description ======== In `protocols::tcp::passive_open::PassiveSocket::receive()`, we should properly refuse incoming connections if we reached the maximum backlog length of a passive socket.
Description ======== In `protocols::tcp::active_open::receive()`, we currently panicking on a bad window scale, instead of failing or rounding down the provided value.
# Description In `protocols::udp::peer::do_receive()`, we fail when receiving packets in an unbound port. Instead, we should send back an error message through ICMPv4.
Description ======== We should handle cancellation of ping requests in `protocols::icmpv4::peer::ping()`.
Description ======== We are currently using watched values to drive the TCP stack, we should trigger event actions in a direct way instead.
Since our TCP stack is deterministic, we can get really good coverage via randomized simulation testing. We could have a pretty simple testing scenario (Alice sending some fixed data to...
# Description We should add the following regression tests for TCP: - [ ] Deterministic hashmap - [ ] Random number of clients, connecting and disconnecting from each other randomly...
Description ======== Some tests stall in the testing infrastructure and cause future tests to fail. We should add an auto kill feature to our regression infrastructure to prevent this situation...