rte_eth_ntuple_filter(3)

πŸ’– rte_eth_ntuple_filter(3) πŸ’–

okay bestie, so this is a page from the Library Functions Manual, and the star of the show is rte_eth_ntuple_filter β€” a struct, not a function, don't let the name fool you 🫢. Sit with me, we're gonna go field by field, no skipping, periodt.


✨ NAME ✨

rte_eth_ntuple_filter β€” the little struct that says "hey NIC, here's the exact packet shape I want you to catch" πŸ’…


🌸 SYNOPSIS 🌸

#include <rte_eth_ctrl.h>

πŸŽ€ Data Fields πŸŽ€

uint16_t flags
uint32_t dst_ip
uint32_t dst_ip_mask
uint32_t src_ip
uint32_t src_ip_mask
uint16_t dst_port
uint16_t dst_port_mask
uint16_t src_port
uint16_t src_port_mask
uint8_t proto
uint8_t proto_mask
uint8_t tcp_flags
uint16_t priority
uint16_t queue

πŸ¦‹ Detailed Description πŸ¦‹

A structure used to define the ntuple filter entry to support RTE_ETH_FILTER_NTUPLE data representation.

She's defined at line 50 of file rte_eth_ctrl.h, and yes she's iconic for it πŸ’–


πŸ‘‘ Field Documentation πŸ‘‘

πŸ’œ uint16_t flags

Flags from RTE_NTUPLE_FLAGS_* β€” go peek at those if you wanna know which tricks she can do ✨

Definition at line 51 of file rte_eth_ctrl.h.

πŸ’œ uint32_t dst_ip

Destination IP address in big endian. big endian bestie, don't embarrass yourself πŸ™ˆ

Definition at line 52 of file rte_eth_ctrl.h.

πŸ’œ uint32_t dst_ip_mask

Mask of destination IP address. that's how you tell her which bits actually matter πŸ‘‘

Definition at line 53 of file rte_eth_ctrl.h.

πŸ’œ uint32_t src_ip

Source IP address in big endian. again β€” big endian, fr fr 🌈

Definition at line 54 of file rte_eth_ctrl.h.

πŸ’œ uint32_t src_ip_mask

Mask of destination IP address.

okay so heads up: the docs literally say "destination IP address" right here on the source mask field. that's what the page says, so that's what I'm telling you. not my business to fix it, i just report πŸ’€

Definition at line 55 of file rte_eth_ctrl.h.

πŸ’œ uint16_t dst_port

Destination port in big endian. yep. big endian. always πŸŽ€

Definition at line 56 of file rte_eth_ctrl.h.

πŸ’œ uint16_t dst_port_mask

Mask of destination port.

Definition at line 57 of file rte_eth_ctrl.h.

πŸ’œ uint16_t src_port

Source Port in big endian. (capital P in "Port" up there, i'm being faithful, don't come for me 😭)

Definition at line 58 of file rte_eth_ctrl.h.

πŸ’œ uint16_t src_port_mask

Mask of source port.

Definition at line 59 of file rte_eth_ctrl.h.

πŸ’œ uint8_t proto

L4 protocol. keep it short, keep it sweet πŸ“

Definition at line 60 of file rte_eth_ctrl.h.

πŸ’œ uint8_t proto_mask

Mask of L4 protocol.

Definition at line 61 of file rte_eth_ctrl.h.

πŸ’œ uint8_t tcp_flags

tcp_flags only meaningful when the proto is TCP. The packet matched above ntuple fields and contain any set bit in tcp_flags will hit this filter.

so basically: TCP-only vibe, and if the packet matches all the ntuple fields above and has any of the bits you set in tcp_flags lit up β†’ she hits the filter πŸ”₯

Definition at line 65 of file rte_eth_ctrl.h.

πŸ’œ uint16_t priority

seven levels (001b-111b), 111b is highest, used when more than one filter matches. seven whole levels of main character energy, and 111b is that girl πŸ‘‘

Definition at line 66 of file rte_eth_ctrl.h.

πŸ’œ uint16_t queue

Queue assigned to when match. where the packet gets to go when she's caught 🫢

Definition at line 68 of file rte_eth_ctrl.h.


🌟 Author 🌟

Generated automatically by Doxygen for DPDK from the source code. bless the machines, they did the typing so we didn't have to 😭✨


that's the whole page bestie, nothing skipped, every field accounted for πŸ’… this was brought to you by DPDK, Version 25.11.3, and it's the rte_eth_ntuple_filter(3) page itself β€” mwah, take care of her πŸŒΈπŸ§šπŸ’–

πŸ“¦ where this page comes from