Skip to content

Conversation

ripatel-fd
Copy link
Contributor

@ripatel-fd ripatel-fd commented Aug 10, 2025

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.

@ripatel-fd ripatel-fd changed the title ripatel/net rx flow steer Generic userland RX flow steering Aug 10, 2025
@ripatel-fd ripatel-fd force-pushed the ripatel/net-rx-flow-steer branch 5 times, most recently from 1d08e82 to 57ee3fd Compare August 10, 2025 04:12
@ripatel-fd ripatel-fd force-pushed the ripatel/net-rx-flow-steer branch 3 times, most recently from 71ce825 to 6ad8e44 Compare August 14, 2025 21:24
@ripatel-fd ripatel-fd marked this pull request as ready for review August 14, 2025 21:25
@ripatel-fd ripatel-fd force-pushed the ripatel/net-rx-flow-steer branch from 6ad8e44 to 979f1f5 Compare August 14, 2025 22:38
@ripatel-fd ripatel-fd force-pushed the ripatel/net-rx-flow-steer branch from 979f1f5 to 9a69458 Compare August 14, 2025 22:49
@ripatel-fd ripatel-fd force-pushed the ripatel/net-rx-flow-steer branch from 9a69458 to d6e7e50 Compare August 14, 2025 22:58
riptl added 3 commits August 14, 2025 23:01
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.
@ripatel-fd ripatel-fd force-pushed the ripatel/net-rx-flow-steer branch from d6e7e50 to 31f5fde Compare August 14, 2025 23:02
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,
Copy link
Contributor

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 ));
Copy link
Contributor

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:" ));
Copy link
Contributor

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

Copy link
Contributor

@mmcgee-jump mmcgee-jump left a comment

Choose a reason for hiding this comment

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

.

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.

4 participants