BrianZill
BrianZill
Description ======== We currently have 3 different Hash Maps for routing incoming packets to their correct connections. One each for active-open (SYN_SENT), passive-open (LISTEN, SYN_RCVD), and established. When we are...
Description ======== The existing retransmit routine has a fatal flaw, it is removing data from the unacknowledged queue. This breaks our logic that tracks unacknowledged data. Instead, retransmit() should be...
We don't have a consistent place to check API calls for user errors. For example, in the send path, there is a check that the user isn't attempting to send...
Currently, the "unsent queue" is limited to a fixed number of _segments_, not bytes, via the compiled in constant UNSENT_QUEUE_CUTOFF. The size of this send buffer should be some number...
We should review the retransmit timer implementation, specifically for the following issues: - The code seems overzealous about pushing the retransmit timer into the future. One case in particular is...
Current code handles initial transmission of FIN by representing FIN as a zero-length buffer on the unsent queue and having the send code (both immediate and background) know to set...
TCP sequence numbers are 32-bit values, which limits the "distance" between sequence numbers that can be reasonably compared to be "greater than" or "less than" the other. Also, even with...
There are currently two implementations of the basic sender algorithm, one for immediate sending, and one for background sending. They should do roughly the same thing, although they currently don't,...
We don't currently have an IP layer on the send side. TCP code calls ARP directly to resolve IP to link-layer addresses, composes all the packet headers itself, and submits...
This PR introduces the `DemiBuffer` abstraction. The intent is to replace the `Buffer` enumeration (along with its `DataBuffer` and `DpdkBuffer` subtypes) with this new abstraction. The motivation behind this is...