STRUCT DEVLINK_DPIPE_TABLE_OPS(9)
π struct devlink_dpipe_table_ops(9) β the Kernel API Manual, bestie edition
okay so picture this: you're deep in the Kernel API Manual and you stumble on struct devlink_dpipe_table_ops. that's the whole vibe of this page. it's a struct, it's full of function pointers, and it's genuinely so important. let's get into it π«Ά
β¨ NAME β¨
struct devlink_dpipe_table_ops β literally the dpipe_table ops. that's it, that's the name, no notes π
πΈ SYNOPSIS πΈ
here's the struct in all its glory, copy-pasted exactly so you don't have to squint at the original:
struct devlink_dpipe_table_ops {
int (*actions_dump)(void *priv, struct sk_buff *skb);
int (*matches_dump)(void *priv, struct sk_buff *skb);
int (*entries_dump)(void *priv, bool counters_enabled, struct
devlink_dpipe_dump_ctx *dump_ctx);
int (*counters_set_update)(void *priv, bool enable);
u64 (*size_get)(void *priv);
};
like, look at those function pointers. main character energy honestly π
π Members π
okay so here's the roster, member by member. no skipping, we're doing all five:
actions_dumpβint (*actions_dump)(void *priv, struct sk_buff *skb);β this one dumps all the table's actions. all of them. every single one πmatches_dumpβint (*matches_dump)(void *priv, struct sk_buff *skb);β and this one dumps all the table's matches. yes it's the sibling of the one above, they're a matched set, iykyk β¨entries_dumpβint (*entries_dump)(void *priv, bool counters_enabled, struct devlink_dpipe_dump_ctx *dump_ctx);β this bad boy dumps all the active entries in the table. active only, bestie, we're not lugging around the inactive ones π¦counters_set_updateβint (*counters_set_update)(void *priv, bool enable);β so when you're changing the counter status, the hardware sync maybe needs to happen, because it might need to allocate or free counter-related resources. note the "maybe" β that's the kernel being mysterious, not me πsize_getβu64 (*size_get)(void *priv);β gets the size. simple. iconic. does exactly what it says on the tin π
π₯ SEE ALSO π₯
okay this list is LONG and i respect it. everything here lives in the Kernel file ./include/net/devlink.h, and then it's a whole friend group:
struct devlink_port_pci_pf_attrs(9)struct devlink_port_pci_vf_attrs(9)struct devlink_port_pci_sf_attrs(9)struct devlink_port_attrs(9)struct devlink_linecard_ops(9)struct devlink_dpipe_field(9)struct devlink_dpipe_header(9)struct devlink_dpipe_match(9)struct devlink_dpipe_action(9)struct devlink_dpipe_value(9)struct devlink_dpipe_entry(9)struct devlink_dpipe_dump_ctx(9)struct devlink_dpipe_table(9)struct devlink_dpipe_headers(9)struct devlink_resource_size_params(9)struct devlink_flash_notify(9)struct devlink_param(9)struct devlink_flash_update_params(9)struct devlink_region_ops(9)struct devlink_port_region_ops(9)struct devlink_health_reporter_ops(9)struct devlink_trap_metadata(9)struct devlink_trap_policer(9)struct devlink_trap_group(9)struct devlink_trap(9)struct devlink_port_ops(9)
like, that's the whole group chat. go say hi to all of them π
that's the page, bestie! π§
this one came from./include/net, dated October 2026, and it's filed understruct devli...pe_table_ops(9)because even the manpage headers get truncated sometimes π slay π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms