Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

net 2.0 #3956

Closed
wants to merge 10 commits into from
Closed

net 2.0 #3956

wants to merge 10 commits into from

Conversation

ripatel-fd
Copy link
Contributor

@ripatel-fd ripatel-fd commented Jan 15, 2025

This PR is a major architectural change improving interoperability of the Firedancer networking stack with Linux.

List of changes:

  • Move netlink interactions to separate sandboxed tile for improved security
  • Accept traffic for all IPs on loopback (weak host model) XDP program should accept traffic for all IPs on loopback #4022
  • Add Linux-compatible routing table (fd_fib4)
  • Improve outgoing routing
  • Monitor network interfaces
  • Crash Firedancer if a vital network interface disappears (needs restart and reinstall of the XDP program)
  • Attach XDP to bond slaves instead of master for improved performance
  • Use Linux iproute2 neighbor API to dispatch ARP requests to improve compatibility and DoS resistance
  • Mirror Linux iproute2 neighbor table
  • fdctl integration
  • Local tests

@ripatel-fd ripatel-fd changed the title net 2.0: new route table New net tile Jan 15, 2025
@ripatel-fd ripatel-fd force-pushed the ripatel/new-net-tile branch 6 times, most recently from 7690408 to 2f416bc Compare January 20, 2025 08:24
@ripatel-fd ripatel-fd force-pushed the ripatel/new-net-tile branch 2 times, most recently from 7b454e9 to 1faaaac Compare January 26, 2025 05:06
@ripatel-fd ripatel-fd changed the title New net tile Add netlink tile Jan 26, 2025
@ripatel-fd ripatel-fd force-pushed the ripatel/new-net-tile branch from 1faaaac to 34e546b Compare January 26, 2025 05:22
@@ -58,7 +58,11 @@ metric introduced.
<counter name="SentBytes" summary="Total bytes sent (including IP, UDP headers)." />
<counter name="XdpRxDroppedRingFull" summary="Number of packets dropped because the RX completion queue was empty. This is only reported for net tile 0, since the measurement is across all RX queues." />
<counter name="XdpRxDroppedOther" summary="Number of packets dropped for other reasons. This is only reported for net tile 0, since the measurement is across all RX queues." />
<counter name="TxDropped" summary="Number of packets dropped because the TX submission queue was empty. This is reported for all net tiles." />
<counter name="TxDroppedInterfaceNoXdp" summary="Number of packets dropped because the output interface has no XDP socket." />
<counter name="TxDroppedFullLo" summary="Number of packets dropped because the TX ring was full (loopback)" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe an enum for these?

@ripatel-fd ripatel-fd force-pushed the ripatel/new-net-tile branch 2 times, most recently from 01e2414 to e275aaf Compare January 27, 2025 18:42
@ripatel-fd ripatel-fd changed the title Add netlink tile net 2.0 Jan 30, 2025
@ripatel-fd ripatel-fd force-pushed the ripatel/new-net-tile branch from e275aaf to ba8980a Compare February 4, 2025 16:56
@ripatel-fd ripatel-fd closed this Feb 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants