Rob Jansen
Rob Jansen
Overall this seems positive and helpful! I think this approach is interesting and a powerful way for users to override syscalls. Some thoughts: - When users need a new stub,...
Initial thought: I am concerned with scope creep. I see the use case, but we didn't really design Shadow to be a fuzzing tool and I think doing that well...
To support `pfifo_fast`, I would like to explore changing the network interface design slightly. In the current design, we "register" sockets that are "ready to send packets" by pushing them...
Here is an overview of what happens in Linux: https://wiki.linuxfoundation.org/networking/kernel_flow I think the most important part is [`tcp_transmit_skb()`](https://elixir.bootlin.com/linux/v2.6.20/source/net/ipv4/tcp_output.c#L389) ```C /* This routine actually transmits TCP packets queued in by *...
> So it sounds to me like we don't want something like tcp_networkInterfaceIsAboutToSendPacket, do you agree? I do not agree. AIUI, linux first queues the equivalent of a headerless packet...
> What causes the socket to take more packets out of its queue and calls try_send for them? ... > What tells the TCP socket to retry sending the packet...
> In https://wiki.linuxfoundation.org/networking/kernel_flow, the layers seem to be TCP -> IP -> Ethernet. The qdiscs are documented under the Ethernet layer. So to me it seems like Linux attaches the...
> But is there anything that prioritizes packets as they move from the TCP layer to the qdisc? ... What does Linux do? This problem seems equally important to qdisc...
I read two more resources and found them very useful [1, 2]. One thing I got out of these was that there seems to be a signal that is passed...
Another reference with more details about the NIC-to-TCP signal: > TCP Small Queues (TSQ) > > TCP Small Queues (TSQ) performs local flow control, limiting the amount of data in...