STRUCT NFP_FLOWER_PRIV(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

okay so bestie, welcome to the Kernel API Manual page for struct nfp_flower_priv(9) β€” the Flower APP per-vNIC priv data. That's the whole vibe: it's the struct holding the Flower APP's per-vNIC private data. iconic ✨

✨ SYNOPSIS ✨

here's the struct exactly as it appears, no cap:

       struct nfp_flower_priv {
           struct nfp_app *app;
           struct nfp_net *nn;
           u32 mask_id_seed;
           u64 flower_version;
           u64 flower_ext_feats;
           u8 flower_en_feats;
           struct nfp_fl_stats_id stats_ids;
           struct nfp_fl_mask_id mask_ids;
           unsigned long mask_table[1 << (( NFP_FLOWER_MASK_HASH_BITS) - 1)];
           u32 stats_ring_size;
           struct rhashtable flow_table;
           struct nfp_fl_stats *stats;
           spinlock_t stats_lock;
           struct rhashtable stats_ctx_table;
           struct work_struct cmsg_work;
           struct sk_buff_head cmsg_skbs_high;
           struct sk_buff_head cmsg_skbs_low;
           struct nfp_fl_tunnel_offloads tun;
           atomic_t reify_replies;
           wait_queue_head_t reify_wait_queue;
           struct nfp_mtu_conf mtu_conf;
           struct nfp_fl_lag nfp_lag;
           struct list_head indr_block_cb_priv;
           struct list_head non_repr_priv;
           unsigned int active_mem_unit;
           unsigned int total_mem_units;
           struct nfp_fl_internal_ports internal_ports;
           struct delayed_work qos_stats_work;
           unsigned int qos_rate_limiters;
           spinlock_t qos_stats_lock;
           struct mutex meter_stats_lock;
           struct rhashtable meter_table;
           int pre_tun_rule_cnt;
           struct rhashtable merge_table;
           struct rhashtable ct_zone_table;
           struct nfp_fl_ct_zone_entry *ct_zone_wc;
           struct rhashtable ct_map_table;
           struct list_head predt_list;
           struct rhashtable neigh_table;
           spinlock_t predt_lock;
           struct mutex nfp_fl_lock;
        };

πŸ’… Members πŸ’…

okay so every single member gets its moment. No skips, bestie.

  • app β€” back pointer to app.
  • nn β€” pointer to the vNIC.
  • mask_id_seed β€” seed used for the mask hash table.
  • flower_version β€” HW version of flower.
  • flower_ext_feats β€” bitmap of extra features the HW supports.
  • flower_en_feats β€” bitmap of features enabled by HW.
  • stats_ids β€” list of free stats ids.
  • mask_ids β€” list of free mask ids.
  • mask_table β€” hash table used to store masks.
  • stats_ring_size β€” maximum number of allowed stats ids.
  • flow_table β€” hash table used to store flower rules.
  • stats β€” stored stats updates for flower rules.
  • stats_lock β€” lock for flower rule stats updates.
  • stats_ctx_table β€” hash table to map stats contexts to its flow rule.
  • cmsg_work β€” workqueue for control messages processing.
  • cmsg_skbs_high β€” list of higher priority skbs for control message processing.
  • cmsg_skbs_low β€” list of lower priority skbs for control message processing.
  • tun β€” tunnel offload data.
  • reify_replies β€” atomically stores the number of replies received from firmware for repr reify.
  • reify_wait_queue β€” wait queue for repr reify response counting.
  • mtu_conf β€” configuration of repr MTU value.
  • nfp_lag β€” link aggregation data block.
  • indr_block_cb_priv β€” list of priv data passed to indirect block cbs.
  • non_repr_priv β€” list of offloaded non-repr ports and their priv data.
  • active_mem_unit β€” current active memory unit for flower rules.
  • total_mem_units β€” total number of available memory units for flower rules.
  • internal_ports β€” internal port ids used in offloaded rules.
  • qos_stats_work β€” workqueue for qos stats processing.
  • qos_rate_limiters β€” current active qos rate limiters.
  • qos_stats_lock β€” lock on qos stats updates.
  • meter_stats_lock β€” lock on meter stats updates.
  • meter_table β€” hash table used to store the meter table.
  • pre_tun_rule_cnt β€” number of pre-tunnel rules offloaded.
  • merge_table β€” hash table to store merged flows.
  • ct_zone_table β€” hash table used to store the different zones.
  • ct_zone_wc β€” special zone entry for wildcarded zone matches.
  • ct_map_table β€” hash table used to referennce ct flows.
  • predt_list β€” list to keep track of decap pretun flows.
  • neigh_table β€” table to keep track of neighbor entries.
  • predt_lock β€” lock to serialise predt/neigh table updates.
  • nfp_fl_lock β€” lock to protect the flow offload operation.

πŸ¦‹ SEE ALSO πŸ¦‹

the page points you at this kernel file and these structs, so go get your reading glasses bestie:

  • Kernel file: ./drivers/net/ethernet/netronome/nfp/flower/main.h
  • struct nfp_fl_tunnel_offloads(9)
  • struct nfp_tun_neigh_lag(9)
  • struct nfp_tun_neigh(9)
  • struct nfp_tun_neigh_ext(9)
  • struct nfp_tun_neigh_v4(9)
  • struct nfp_tun_neigh_v6(9)
  • struct nfp_neigh_entry(9)
  • struct nfp_predt_entry(9)
  • struct nfp_mtu_conf(9)
  • struct nfp_fl_lag(9)
  • struct nfp_fl_internal_ports(9)
  • struct nfp_fl_qos(9)
  • struct nfp_flower_repr_priv(9)
  • struct nfp_flower_non_repr_priv(9)
  • struct nfp_ipv6_addr_entry(9)

and that's the whole page, bestie πŸ’œ The footer says source/version ./drivers/net/ethernet/netrono... with date October 2026, and the manual label is struct nfp_flower_priv(9). slay ✨

πŸ“¦ where this page comes from