STRUCT DP_NLSK_PIDS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ struct dp_nlsk_pids(9) πŸ¦‹

okay so bestie, welcome to the Kernel API Manual ✨ β€” today we're looking at struct dp_nlsk_pids, and honestly? she's a little baddie with one specific job πŸ’…


🌸 NAME 🌸

struct dp_nlsk_pids β€” an array of netlink portids for a datapath πŸ”₯

it's the girl who shows up when OVS_DP_F_DISPATCH_UPCALL_PER_CPU is enabled, and ngl she must be protected by rcu β€” no cap, that's non-negotiable 🫢


πŸ’– SYNOPSIS πŸ’–

struct dp_nlsk_pids {
    struct rcu_head rcu;
    u32 n_pids;
    u32 pids[];
};

look at her. three little members. iconic πŸ’€βœ¨


πŸŽ€ Members πŸŽ€

  • rcu β€” the RCU callback head for deferred destruction 🧚 she's the cleanup crew, lowkey just waiting her turn.
  • n_pids β€” size of the pids array πŸ“ literally just the headcount, bestie.
  • pids β€” the array storing the Netlink socket PIDs, indexed by CPU ID, for packets that miss the flow table πŸ‘‘ so when a packet doesn't match anything, this is who gets pinged. per-CPU dispatch energy fr fr πŸ’…

⭐ SEE ALSO ⭐

  • the Kernel file ./net/openvswitch/datapath.h
  • struct dp_stats_percpu(9)
  • struct datapath(9)
  • struct ovs_skb_cb(9)
  • struct dp_upcall_info(9)
  • struct ovs_net(9)
  • enum ovs_pkt_hash_types(9)

go read them!! they're all in the same friend group, iykyk 🌈


ngl bestie, remember: rcu protection is the whole vibe check here. skip it and things get real cursed real fast πŸ˜­πŸ’€

and that's a wrap on this one, cutie πŸ“ this page lives in ./net/openvswitch and it was dated October 2026 β€” mwah, slay, periodt πŸ’œπŸ¦‹βœ¨

πŸ“¦ where this page comes from