-
Notifications
You must be signed in to change notification settings - Fork 316
Generic userland RX flow steering #5993
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
base: main
Are you sure you want to change the base?
Conversation
1d08e82
to
57ee3fd
Compare
71ce825
to
6ad8e44
Compare
6ad8e44
to
979f1f5
Compare
979f1f5
to
9a69458
Compare
9a69458
to
d6e7e50
Compare
Fixes a design flaw where the xdp and sock tiles hardcode the flow steering rules for the app tiles. Defines a generic 'topo_net_rx' struct that maps UDP ports to output links (and metadata like DST_PROTO IDs). Adds a 'find_16x16' API for AVX-accelerated fast port matching. Temporarily undoes the 'repair ping-pong' flow steering hack.
Forwards ping frames arriving at the 'repair ingress' port from the shred tile to the repair tile. This was previously done at the net tile level, but is moved to the shred/repair tiles to keep the network stack clean.
d6e7e50
to
31f5fde
Compare
typedef struct fd_topo_net_rx fd_topo_net_rx_t; | ||
|
||
static inline void | ||
fd_topo_net_rx_rule_push( fd_topo_net_rx_t * net, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't love this in fd_topo.h. Couldn't this go in fd_topob
?
|
||
ulong link_name_len = strnlen( link_name, FD_TOPO_LINK_NAME_SZ ); | ||
if( FD_UNLIKELY( link_name_len>=FD_TOPO_LINK_NAME_SZ ) ) { | ||
FD_LOG_ERR(( "link name too long: \"%s\"", link_name )); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These kind of checks should go in validate
function
#endif | ||
if( FD_UNLIKELY( port_idx >= ctx->rx_port_cnt ) ) { | ||
/* Dump out the listen port configuration to aid debugging */ | ||
FD_LOG_NOTICE(( "Fatal error occurred.\nDumping XDP RX UDP port configuration to aid debugging:" )); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably log this at WARNING
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
.
Remove unused SIOCGIFHWADDR call.
Fixes a design flaw where the xdp and sock tiles hardcode the
flow steering rules for the app tiles.
Defines a generic 'topo_net_rx' struct that maps UDP ports to
output links (and metadata like DST_PROTO IDs).
Adds a 'find_16x16' API for AVX-accelerated fast port matching.
Move repair forwarding logic from net/sock tiles to repair/shred.