bridge: uapi: Add neigh_forward_grat netlink attributes

Add netlink attributes for controlling gratuitous ARP and unsolicited NA
forwarding when neighbor suppression is enabled.

Add IFLA_BRPORT_NEIGH_FORWARD_GRAT for port-level control and
BRIDGE_VLANDB_ENTRY_NEIGH_FORWARD_GRAT for per-VLAN control.

The new attributes provide independent control of gratuitous ARP and
unsolicited NA packets. Operators can enable forwarding for those packets
for fast mobility across VTEPs while keeping general neighbor suppression
active.

Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: Danielle Ratson <danieller@nvidia.com>
Link: https://patch.msgid.link/20260511065936.4173106-2-danieller@nvidia.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
Danielle Ratson 2026-05-11 09:59:31 +03:00 committed by Paolo Abeni
parent 84f817c1c8
commit 0c32db0761
4 changed files with 22 additions and 1 deletions

View File

@ -1700,6 +1700,9 @@ attribute-sets:
-
name: backup-nhid
type: u32
-
name: neigh-forward-grat
type: u8
-
name: linkinfo-gre-attrs
name-prefix: ifla-gre-

View File

@ -526,6 +526,7 @@ enum {
BRIDGE_VLANDB_ENTRY_MCAST_N_GROUPS,
BRIDGE_VLANDB_ENTRY_MCAST_MAX_GROUPS,
BRIDGE_VLANDB_ENTRY_NEIGH_SUPPRESS,
BRIDGE_VLANDB_ENTRY_NEIGH_FORWARD_GRAT,
__BRIDGE_VLANDB_ENTRY_MAX,
};
#define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1)

View File

@ -1085,6 +1085,22 @@ enum {
* Note that this option only takes effect when *IFLA_BRPORT_NEIGH_SUPPRESS*
* is enabled for a given port.
*
* @IFLA_BRPORT_NEIGH_FORWARD_GRAT
* Controls whether gratuitous ARP packets and unsolicited Neighbor
* Advertisement packets are forwarded on a given port even when neighbor
* suppression is enabled.
* By default this flag is off, meaning gratuitous ARP and unsolicited NA
* packets will be suppressed when neighbor suppression is enabled.
* Setting this flag to on allows these packets to be forwarded even
* when *IFLA_BRPORT_NEIGH_SUPPRESS* or *IFLA_BRPORT_NEIGH_VLAN_SUPPRESS*
* is enabled.
*
* Note that this option only takes effect when *IFLA_BRPORT_NEIGH_SUPPRESS*
* or *IFLA_BRPORT_NEIGH_VLAN_SUPPRESS* is enabled for a given port.
* When *IFLA_BRPORT_NEIGH_VLAN_SUPPRESS* is set, this port-level flag is
* ignored and per-VLAN control is available via
* *BRIDGE_VLANDB_ENTRY_NEIGH_FORWARD_GRAT*.
*
* @IFLA_BRPORT_BACKUP_NHID
* The FDB nexthop object ID to attach to packets being redirected to a
* backup port that has VLAN tunnel mapping enabled (via the
@ -1137,6 +1153,7 @@ enum {
IFLA_BRPORT_MCAST_MAX_GROUPS,
IFLA_BRPORT_NEIGH_VLAN_SUPPRESS,
IFLA_BRPORT_BACKUP_NHID,
IFLA_BRPORT_NEIGH_FORWARD_GRAT,
__IFLA_BRPORT_MAX
};
#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)

View File

@ -63,7 +63,7 @@
#include "dev.h"
#define RTNL_MAX_TYPE 50
#define RTNL_SLAVE_MAX_TYPE 44
#define RTNL_SLAVE_MAX_TYPE 45
struct rtnl_link {
rtnl_doit_func doit;