STRUCT EFX_NEIGH_BINDER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

struct efx_neigh_binder β€” driver state for a neighbour entry

okay so bestie, welcome to the Kernel API Manual, section 9 β€” this page is all about struct efx_neigh_binder, and we're gonna make it make sense πŸ’…


✨ SYNOPSIS ✨

       struct efx_neigh_binder {
           struct net *net;
           __be32 dst_ip;
           struct in6_addr dst_ip6;
           char ha[ETH_ALEN];
           bool n_valid;
           rwlock_t lock;
           u8 ttl;
           bool dying;
           struct net_device *egdev;
           netdevice_tracker dev_tracker;
           netns_tracker ns_tracker;
           refcount_t ref;
           unsigned long used;
           struct list_head users;
           struct rhash_head linkage;
           struct work_struct work;
           struct efx_nic *efx;
        };

🫢 Members 🫢

  • net β€” the network namespace in which this neigh resides
  • dst_ip β€” the IPv4 destination address resolved by this neigh
  • dst_ip6 β€” the IPv6 destination address resolved by this neigh
  • ha β€” the hardware (Ethernet) address of the neighbour
  • n_valid β€” true if the neighbour is in NUD_VALID state
  • lock β€” protects ha and n_valid
  • ttl β€” Time To Live associated with the route used
  • dying β€” set when egdev is going away, to skip further updates
  • egdev β€” egress device from the route lookup. Holds a reference (yes, that's literally the whole sentence β€” don't @ me 😭)
  • dev_tracker β€” reference tracker entry for egdev
  • ns_tracker β€” reference tracker entry for ns
  • ref β€” counts encap actions referencing this entry
  • used β€” jiffies of last time traffic hit any encap action using this. When counter reads update this, a new neighbour event is sent to indicate that the neighbour entry is still in use.
  • users β€” list of struct efx_tc_encap_action
  • linkage β€” entry in efx->neigh_ht (keys are net, dst_ip, dst_ip6).
  • work β€” processes neighbour state changes, updates the encap actions
  • efx β€” owning NIC instance.

🌸 DESCRIPTION 🌸

okay so picture this: struct efx_neigh_binder associates a neighbour entry with the encap actions that are interested in it, and that lets the latter get updated when the neighbour details change. That's the whole vibe. Whichever of dst_ip and dst_ip6 is not in use will be all-zeroes β€” and this distinguishes IPv4 from IPv6 entries. no cap, that all-zeroes check is the IPv4/IPv6 vibe check πŸ¦‹


πŸ”₯ SEE ALSO πŸ”₯

go peek at the kernel file: ./drivers/net/ethernet/sfc/tc_encap_actions.h


made with πŸ’– from source/version ./drivers/net/ethernet/sfc, dated October 2026, for struct efx_neigh_binder(9) β€” bye bestie 🫢

πŸ“¦ where this page comes from