STRUCT GENL_SPLIT_OPS(9)
π struct genl_split_ops
okay so bestie, welcome to the Kernel API Manual β¨ β this is the page for struct genl_split_ops, aka generic netlink operations, do/dump split version. Itβs giving βone struct, two callback personalities,β and weβre gonna walk through every member, no cap. π¦
πΈ NAME
struct genl_split_ops β generic netlink operations (do/dump split version) π
π¦ SYNOPSIS
struct genl_split_ops {
union {
struct {
int (*pre_doit)(const struct genl_split_ops *ops, struct sk_buff *skb, struct genl_info *info);
int (*doit)(struct sk_buff *skb, struct genl_info *info);
void (*post_doit)(const struct genl_split_ops *ops, struct sk_buff *skb, struct genl_info *info);
};
struct {
int (*start)(struct netlink_callback *cb);
int (*dumpit)(struct sk_buff *skb, struct netlink_callback *cb);
int (*done)(struct netlink_callback *cb);
};
};
const struct nla_policy *policy;
unsigned int maxattr;
u8 cmd;
u8 internal_flags;
u8 flags;
u8 validate;
};
π«Ά Members
{unnamed_union}β anonymous. literally an unnamed union doing its anonymous-union thing π{unnamed_struct}β anonymous.pre_doitβ called before an operationβsdoitcallback; it may do additional, common, filtering and return an error πdoitβ standard command callback β¨post_doitβ called after an operationβsdoitcallback; it may undo operations done bypre_doit, for example release locks π{unnamed_struct}β anonymous.startβ start callback for dumps πdumpitβ callback for dumpers πdoneβ completion callback for dumps βpolicyβ netlink policy (takes precedence over family policy) πmaxattrβ maximum number of attributes supported π’cmdβ command identifier π·οΈinternal_flagsβ flags used by the family π©flagsβGENL_*flags (GENL_ADMIN_PERMorGENL_UNS_ADMIN_PERM) π₯validateβ validation flags from enumgenl_validate_flagsπ§
π Description
β¨ Do callbacks:
These are the do-side slots β the pre_doit, doit, and post_doit energy from the union above. π
π Dump callbacks:
These are the dump-side slots β the start, dumpit, and done energy. π
Do callbacks can be used if GENL_CMD_CAP_DO is set in flags. Dump callbacks can be used if GENL_CMD_CAP_DUMP is set in flags. Exactly one of those flags must be set. not zero, not both β exactly one. periodt. π
π SEE ALSO
the whole reference squad is here, bestie β the kernel file ./include/net/genetlink.h plus these icons:
struct genl_multicast_group(9)struct genl_family(9)struct genl_info(9)struct genl_small_ops(9)struct genl_ops(9)struct genl_dumpit_info(9)genl_info_init_ntf(9)genlmsg_iput(9)genlmsg_nlhdr(9)genlmsg_parse_deprecated(9)genlmsg_parse(9)genl_dump_check_consistent(9)genlmsg_put_reply(9)genlmsg_end(9)genlmsg_cancel(9)genlmsg_multicast_netns_filtered(9)genlmsg_multicast_netns(9)genlmsg_multicast(9)genlmsg_multicast_allns(9)genlmsg_unicast(9)genlmsg_reply(9)genlmsg_data(9)genlmsg_len(9)genlmsg_msg_size(9)genlmsg_total_size(9)genlmsg_new(9)genl_set_err(9)
okay bye bestie π β this oneβs from source/version ./include/net, dated October 2026, and yes the page is struct genl_split_ops(9). πβ¨
π¦ 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