You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, the XDP programs created by catpowder will capture all traffic on the interface. This is not necessarily desirable, as it will prevent regular traffic from flowing through the Windows kernel data path. Additionally, the port allocation schema will not respect ports reserved by the kernel.
Proposed Solution
Restructure the Catpowder windows LibOS to rebind XDP rules when a socket is bound or connected. Scope the rules such that XDP only inspects traffic relevant to the protocol/port. Add a new port manager to the layer4 components to replace the ephemeral port allocation and port binding which will validate ports against kernel-allocated ports (e.g., but creating a WinSock socket and binding it) and reserve those ports for use by Demikernel (i.e., so that no other application can attempt to use them through the kernel networking stack)
Alternative Solutions
I have no idea whether this is supported by XDP for Windows, but in theory unneeded traffic could be re-injected to the driver stack for processing by the kernel.
The text was updated successfully, but these errors were encountered:
kyleholohan
changed the title
[Catpowder] scope XDP program rules to only capture traffic for desired connections
[Catpowder] Windows: support co-hosting of Demikernel when XDP is in use
Oct 10, 2024
Context
Currently, the XDP programs created by catpowder will capture all traffic on the interface. This is not necessarily desirable, as it will prevent regular traffic from flowing through the Windows kernel data path. Additionally, the port allocation schema will not respect ports reserved by the kernel.
Proposed Solution
Restructure the Catpowder windows LibOS to rebind XDP rules when a socket is bound or connected. Scope the rules such that XDP only inspects traffic relevant to the protocol/port. Add a new port manager to the layer4 components to replace the ephemeral port allocation and port binding which will validate ports against kernel-allocated ports (e.g., but creating a WinSock socket and binding it) and reserve those ports for use by Demikernel (i.e., so that no other application can attempt to use them through the kernel networking stack)
Alternative Solutions
I have no idea whether this is supported by XDP for Windows, but in theory unneeded traffic could be re-injected to the driver stack for processing by the kernel.
The text was updated successfully, but these errors were encountered: