STRUCT NFT_CHAIN_TYPE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

ok so this is the struct nft_chain_type page from the Kernel API Manual β€” it's literally the nf_tables chain type info struct, no cap πŸ’…


✨ SYNOPSIS ✨

struct nft_chain_type {
    const char                      *name;
    enum nft_chain_types            type;
    int family;
    struct module                   *owner;
    unsigned int                    hook_mask;
    nf_hookfn *hooks[NFT_MAX_HOOKS];
    int (*ops_register)(struct net *net, const struct nf_hook_ops *ops);
    void (*ops_unregister)(struct net *net, const struct nf_hook_ops
*ops);
 };

bestie look at that indentation on the last field, she's doing her best okay 😭 but fr don't touch it, it's exactly how it lives in the header 🫢


πŸŽ€ Members πŸŽ€

okay so here's the whole cast, main character by main character πŸ‘‘

  • name β€” the name of the type. literally its whole identity ✨
  • type β€” the numeric identifier. it's giving "ID number" energy πŸ”’
  • family β€” the address family. which family reunion is this πŸ’€
  • owner β€” the module owner. someone's gotta claim it 🫢
  • hook_mask β€” the mask of valid hooks. only the valid ones get in πŸ”₯
  • hooks β€” an array of hook functions. yes bestie, an array 🌈
  • ops_register β€” the base chain register function πŸ‘‘
  • ops_unregister β€” the base chain unregister function. she takes it back πŸ’…

πŸ”₯ SEE ALSO πŸ”₯

so there's a kernel file you should peek at: ./include/net/netfilter/nf_tables.h, and it's sitting next to an entire friend group of related pages β€” like, the whole netfilter extended fam is here πŸ¦‹

  • struct nft_verdict(9)
  • struct nft_regs(9)
  • struct nft_ctx(9)
  • struct nft_userdata(9)
  • struct nft_set_elem(9)
  • enum nft_iter_type(9)
  • struct nft_set_desc(9)
  • enum nft_set_class(9)
  • struct nft_set_estimate(9)
  • struct nft_expr(9)
  • struct nft_set_ops(9)
  • struct nft_set_type(9)
  • struct nft_set(9)
  • struct nft_set_binding(9)
  • enum nft_set_extensions(9)
  • struct nft_set_ext_type(9)
  • struct nft_set_ext_tmpl(9)
  • struct nft_set_ext(9)
  • struct nft_expr_type(9)
  • struct nft_expr_ops(9)
  • struct nft_rule(9)
  • struct nft_chain_validate_state(9)
  • struct nft_chain(9)
  • struct nft_base_chain(9)
  • struct nft_table(9)
  • struct nft_object_hash_key(9)
  • struct nft_object(9)
  • struct nft_object_type(9)
  • struct nft_object_ops(9)
  • struct nft_flowtable(9)
  • struct nft_traceinfo(9)
  • struct nft_trans(9)
  • struct nft_trans_hook(9)
  • struct nft_trans_binding(9)

like, go read them all, i'll wait πŸ’œ


ok that's the whole page, nothing skipped, every single one of those (9)s is accounted for and you KNOW i checked 😀

and that's a wrap bestie!! source vibe check: this one comes to you from ./include/net/netfilter, dated October 2026, and it's still signed struct nft_chain_type(9) at the bottom because consistency is iconic πŸ‘‘βœ¨ go touch some kernel code, ily πŸ«ΆπŸ’–

πŸ“¦ where this page comes from