mirror-linux/include/uapi/linux
Petr Machata a1aee20d5d net: bridge: Add netlink knobs for number / maximum MDB entries
The previous patch added accounting for number of MDB entries per port and
per port-VLAN, and the logic to verify that these values stay within
configured bounds. However it didn't provide means to actually configure
those bounds or read the occupancy. This patch does that.

Two new netlink attributes are added for the MDB occupancy:
IFLA_BRPORT_MCAST_N_GROUPS for the per-port occupancy and
BRIDGE_VLANDB_ENTRY_MCAST_N_GROUPS for the per-port-VLAN occupancy.
And another two for the maximum number of MDB entries:
IFLA_BRPORT_MCAST_MAX_GROUPS for the per-port maximum, and
BRIDGE_VLANDB_ENTRY_MCAST_MAX_GROUPS for the per-port-VLAN one.

Note that the two new IFLA_BRPORT_ attributes prompt bumping of
RTNL_SLAVE_MAX_TYPE to size the slave attribute tables large enough.

The new attributes are used like this:

 # ip link add name br up type bridge vlan_filtering 1 mcast_snooping 1 \
                                      mcast_vlan_snooping 1 mcast_querier 1
 # ip link set dev v1 master br
 # bridge vlan add dev v1 vid 2

 # bridge vlan set dev v1 vid 1 mcast_max_groups 1
 # bridge mdb add dev br port v1 grp 230.1.2.3 temp vid 1
 # bridge mdb add dev br port v1 grp 230.1.2.4 temp vid 1
 Error: bridge: Port-VLAN is already in 1 groups, and mcast_max_groups=1.

 # bridge link set dev v1 mcast_max_groups 1
 # bridge mdb add dev br port v1 grp 230.1.2.3 temp vid 2
 Error: bridge: Port is already in 1 groups, and mcast_max_groups=1.

 # bridge -d link show
 5: v1@v2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br [...]
     [...] mcast_n_groups 1 mcast_max_groups 1

 # bridge -d vlan show
 port              vlan-id
 br                1 PVID Egress Untagged
                     state forwarding mcast_router 1
 v1                1 PVID Egress Untagged
                     [...] mcast_n_groups 1 mcast_max_groups 1
                   2
                     [...] mcast_n_groups 0 mcast_max_groups 0

Signed-off-by: Petr Machata <petrm@nvidia.com>
Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2023-02-06 08:48:26 +00:00
..
android
byteorder
caif
can
cifs
dvb Merge tag 'br-v6.2i' of git://linuxtv.org/hverkuil/media_tree into media_stage 2022-12-07 17:58:47 +01:00
genwqe
hdlc
hsi headers: Remove some left-over license text in include/uapi/linux/hsi/ 2022-11-17 22:49:39 +01:00
iio iio: add modifers for pitch, yaw, roll 2022-09-21 18:42:55 +01:00
isdn
misc
mmc
netfilter Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-01-27 22:56:18 -08:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd
raid
sched
spi
sunrpc
surface_aggregator
tc_act net: sched: add helper support in act_ct 2022-11-08 12:15:19 +01:00
tc_ematch
usb usb: gadget: uvc: Rename bmInterfaceFlags -> bmInterlaceFlags 2022-12-08 16:53:47 +01:00
a.out.h
acct.h
acrn.h virt: acrn: Mark the uuid field as unused 2022-11-23 19:55:22 +01:00
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h
aio_abi.h
am437x-vpfe.h
amt.h
apm_bios.h
arcfb.h
arm_sdei.h
aspeed-lpc-ctrl.h
aspeed-p2a-ctrl.h
aspeed-video.h media: aspeed: Support aspeed mode to reduce compressed data 2022-11-04 16:56:41 +01:00
atalk.h
atm.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_tcp.h
atm_zatm.h
atmapi.h
atmarp.h
atmbr2684.h atm: uapi: fix spelling typos in comments 2022-12-22 18:18:37 -08:00
atmclip.h
atmdev.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
audit.h audit: fix undefined behavior in bit shift for AUDIT_BIT 2022-10-31 07:29:47 -04:00
auto_dev-ioctl.h
auto_fs.h
auto_fs4.h
auxvec.h
ax25.h
batadv_packet.h batman-adv: tvlv: prepare for tvlv enabled multicast packet type 2023-01-21 19:01:59 +01:00
batman_adv.h
baycom.h
bcm933xx_hcs.h
bfs_fs.h
binfmts.h
blkpg.h
blktrace_api.h
blkzoned.h
bpf.h bpf: Introduce device-bound XDP programs 2023-01-23 09:38:10 -08:00
bpf_common.h
bpf_perf_event.h
bpfilter.h
bpqether.h
bsg.h
bt-bmc.h
btf.h
btrfs.h btrfs: sync some cleanups from progs into uapi/btrfs.h 2022-12-05 18:00:59 +01:00
btrfs_tree.h btrfs: add nr_global_roots to the super block definition 2022-12-05 18:00:58 +01:00
cachefiles.h
can.h
capability.h capabilities: fix undefined behavior in bit shift for CAP_TO_MASK 2022-11-05 01:25:57 -04:00
capi.h
cciss_defs.h
cciss_ioctl.h
ccs.h
cdrom.h
cec-funcs.h media: cec: add support for Absolute Volume Control 2022-09-24 08:50:04 +02:00
cec.h media: cec: add support for Absolute Volume Control 2022-09-24 08:50:04 +02:00
cfm_bridge.h
cgroupstats.h
chio.h
close_range.h
cm4000_cs.h
cn_proc.h
coda.h
coff.h
comedi.h
connector.h
const.h
coresight-stm.h
counter.h counter: Introduce the Count capture component 2022-09-30 14:32:35 +02:00
cramfs_fs.h
cryptouser.h
cuda.h
cxl_mem.h cxl/security: Drop security command ioctl uapi 2022-12-06 14:36:02 -08:00
cyclades.h
cycx_cfm.h
dcbnl.h net: dcb: add new rewrite table 2023-01-20 09:33:22 +00:00
dccp.h
devlink.h devlink: Expose port function commands to control migratable 2022-12-07 20:09:18 -08:00
dlm.h
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlmconstants.h
dm-ioctl.h
dm-log-userspace.h
dma-buf.h
dma-heap.h
dns_resolver.h
dqblk_xfs.h
dw100.h
edd.h
efs_fs_sb.h
elf-em.h
elf-fdpic.h
elf.h binfmt: Fix whitespace issues 2022-10-25 15:17:23 -07:00
errno.h
errqueue.h
erspan.h
ethtool.h net: ethtool: netlink: retrieve stats from multiple sources (eMAC, pMAC) 2023-01-23 12:44:18 +00:00
ethtool_netlink.h net: ethtool: netlink: retrieve stats from multiple sources (eMAC, pMAC) 2023-01-23 12:44:18 +00:00
eventpoll.h eventpoll: add EPOLL_URING_WAKE poll wakeup flag 2022-11-21 07:45:29 -07:00
f2fs.h f2fs: introduce F2FS_IOC_START_ATOMIC_REPLACE 2022-11-28 12:46:23 -08:00
fadvise.h
falloc.h
fanotify.h
fb.h
fcntl.h
fd.h
fdreg.h
fib_rules.h
fiemap.h
filter.h
firewire-cdev.h
firewire-constants.h
fou.h net: fou: regenerate the uAPI from the spec 2023-01-24 10:58:11 +01:00
fpga-dfl.h
fs.h
fscrypt.h fscrypt: remove unused Speck definitions 2022-12-01 19:58:50 -08:00
fsi.h
fsl_hypervisor.h
fsl_mc.h
fsmap.h
fsverity.h
fuse.h fuse: allow non-extending parallel direct writes on the same file 2022-11-23 09:10:50 +01:00
futex.h
gameport.h
gen_stats.h
genetlink.h
gfs2_ondisk.h
gpio.h
gsmmux.h
gtp.h
hash_info.h
hdlc.h
hdlcdrv.h
hdreg.h
hid.h HID: convert defines of HID class requests into a proper enum 2022-09-20 11:53:32 +01:00
hiddev.h
hidraw.h
hpet.h
hsr_netlink.h
hw_breakpoint.h
hyperv.h
i2c-dev.h
i2c.h
i2o-dev.h
i8k.h
icmp.h
icmpv6.h
idxd.h dmaengine: idxd: Fix crc_val field for completion record 2022-11-14 03:56:37 +05:30
if.h
if_addr.h
if_addrlabel.h
if_alg.h crypto: af_alg - Support symmetric encryption via keyring keys 2022-10-28 12:36:34 +08:00
if_arcnet.h
if_arp.h
if_bonding.h
if_bridge.h net: bridge: Add netlink knobs for number / maximum MDB entries 2023-02-06 08:48:26 +00:00
if_cablemodem.h
if_eql.h
if_ether.h
if_fc.h
if_fddi.h
if_hippi.h
if_infiniband.h
if_link.h net: bridge: Add netlink knobs for number / maximum MDB entries 2023-02-06 08:48:26 +00:00
if_ltalk.h
if_macsec.h
if_packet.h packet: add TP_STATUS_GSO_TCP for tp_status 2023-02-01 20:54:27 -08:00
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_slip.h
if_team.h
if_tun.h uapi/linux/if_tun.h: Added new offload types for USO4/6. 2022-12-12 09:29:56 +00:00
if_tunnel.h
if_vlan.h
if_x25.h
if_xdp.h
ife.h
igmp.h
ila.h
in.h inet: Add IP_LOCAL_PORT_RANGE socket option 2023-01-25 22:45:00 -08:00
in6.h
in_route.h
inet_diag.h
inotify.h
input-event-codes.h HID: add mapping for camera access keys 2022-11-22 17:50:36 -08:00
input.h
io_uring.h uapi:io_uring.h: allow linux/time_types.h to be skipped 2022-12-27 07:32:51 -07:00
ioam6.h ipv6: ioam: Replace 0-length array with flexible array 2023-01-06 19:22:53 -08:00
ioam6_genl.h
ioam6_iptunnel.h
ioctl.h
iommu.h
iommufd.h iommufd: vfio container FD ioctl compatibility 2022-11-30 20:16:49 -04:00
ioprio.h
ip.h net: use struct_group to copy ip/ipv6 header addresses 2022-11-17 10:42:45 +01:00
ip6_tunnel.h
ip_vs.h
ipc.h
ipmi.h
ipmi_bmc.h
ipmi_msgdefs.h
ipmi_ssif_bmc.h ipmi: ssif_bmc: Add SSIF BMC driver 2022-10-17 09:51:26 -05:00
ipsec.h
ipv6.h net: use struct_group to copy ip/ipv6 header addresses 2022-11-17 10:42:45 +01:00
ipv6_route.h
irqnr.h
iso_fs.h
isst_if.h
ivtv.h
ivtvfb.h
jffs2.h
joystick.h
kcm.h
kcmp.h
kcov.h
kd.h
kdev_t.h
kernel-page-flags.h
kernel.h
kernelcapi.h
kexec.h
keyboard.h
keyctl.h
kfd_ioctl.h
kfd_sysfs.h
kvm.h KVM: x86/xen: Add KVM_XEN_INVALID_GPA and KVM_XEN_INVALID_GFN to uapi 2022-12-27 06:01:49 -05:00
kvm_para.h
l2tp.h
landlock.h landlock: Support file truncation 2022-10-19 09:01:44 +02:00
libc-compat.h
limits.h
lirc.h
llc.h
loadpin.h
loop.h
lp.h
lwtunnel.h
magic.h
major.h
map_to_7segment.h
map_to_14segment.h
matroxfb.h
max2175.h
mctp.h
mdio.h
media-bus-format.h media: v4l: Add 1X16 16-bit greyscale media bus code definition 2022-10-25 14:38:31 +03:00
media.h
mei.h
membarrier.h
memfd.h
mempolicy.h
meye.h
mii.h
minix_fs.h
mman.h
mmtimer.h
module.h
mount.h
mpls.h
mpls_iptunnel.h
mptcp.h mptcp: add pm listener events 2022-12-01 20:06:06 -08:00
mqueue.h
mroute.h
mroute6.h
mrp_bridge.h
msdos_fs.h
msg.h
mtio.h
nbd-netlink.h
nbd.h
ncsi.h
ndctl.h
neighbour.h bridge: Add MAC Authentication Bypass (MAB) support 2022-11-03 20:46:32 -07:00
net.h
net_dropmon.h
net_namespace.h
net_tstamp.h net_tstamp: add SOF_TIMESTAMPING_OPT_ID_TCP 2022-12-08 19:49:21 -08:00
netconf.h
netdevice.h
netfilter.h
netfilter_arp.h
netfilter_bridge.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h netlink: remove the flex array from struct nlmsghdr 2022-11-18 18:36:54 -08:00
netlink_diag.h
netrom.h
nexthop.h
nfc.h
nfs.h
nfs2.h
nfs3.h
nfs4.h
nfs4_mount.h
nfs_fs.h
nfs_idmap.h
nfs_mount.h
nfsacl.h
nilfs2_api.h
nilfs2_ondisk.h
nitro_enclaves.h
nl80211-vnd-intel.h
nl80211.h wifi: cfg80211: Use MLD address to indicate MLD STA disconnection 2023-01-18 17:31:50 +01:00
nsfs.h
nubus.h
nvme_ioctl.h
nvram.h
omap3isp.h
omapfb.h
oom.h
openat2.h
openvswitch.h net: openvswitch: Add support to count upcall packets 2022-12-09 10:43:46 +00:00
packet_diag.h
param.h
parport.h
patchkey.h
pci.h
pci_regs.h pci-v6.2-changes 2022-12-14 09:54:10 -08:00
pcitest.h
perf_event.h perf/mem: Rename PERF_MEM_LVLNUM_EXTN_MEM to PERF_MEM_LVLNUM_CXL 2022-10-27 10:27:32 +02:00
personality.h
pfkeyv2.h
pfrut.h
pg.h
phantom.h
phonet.h
pidfd.h
pkt_cls.h
pkt_sched.h net/sched: taprio: allow user input of per-tc max SDU 2022-09-29 18:52:05 -07:00
pktcdvd.h Revert "pktcdvd: remove driver." 2023-01-04 14:44:13 -07:00
pmu.h
poll.h
posix_acl.h
posix_acl_xattr.h
posix_types.h
ppdev.h
ppp-comp.h
ppp-ioctl.h
ppp_defs.h
pps.h
pr.h block: Add error codes for common PR failures 2022-12-01 03:22:20 +00:00
prctl.h
psample.h
psci.h firmware/psci: Fix MEM_PROTECT_RANGE function numbers 2023-01-06 17:12:39 +00:00
psp-sev.h
ptp_clock.h
ptrace.h
qemu_fw_cfg.h
qnx4_fs.h
qnxtypes.h
qrtr.h
quota.h
radeonfb.h
random.h
rds.h
reboot.h
reiserfs_fs.h
reiserfs_xattr.h
remoteproc_cdev.h
resource.h
rfkill.h
rio_cm_cdev.h
rio_mport_cdev.h
rkisp1-config.h media: rockchip: rkisp1: Define macros for DPCC configurations in UAPI 2022-09-24 08:31:54 +02:00
romfs_fs.h
rose.h
route.h
rpl.h net: ipv6: rpl_iptunnel: Replace 0-length arrays with flexible arrays 2023-01-06 19:28:01 -08:00
rpl_iptunnel.h
rpmsg.h
rpmsg_types.h
rseq.h
rtc.h
rtnetlink.h sched: add new attr TCA_EXT_WARN_MSG to report tc extact message 2023-01-17 09:38:33 +01:00
rxrpc.h
scc.h
sched.h
scif_ioctl.h
screen_info.h
sctp.h
seccomp.h
securebits.h
sed-opal.h sed-opal: allow using IOC_OPAL_SAVE for locking too 2022-12-08 09:17:45 -07:00
seg6.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
selinux_netlink.h
sem.h
serial.h serial: Convert serial_rs485 to kernel doc 2022-11-03 03:43:05 +01:00
serial_core.h
serial_reg.h
serio.h
sev-guest.h
shm.h
signal.h
signalfd.h
smc.h
smc_diag.h
smiapp.h
snmp.h icmp: Add counters for rate limits 2023-01-26 10:52:18 +01:00
sock_diag.h
socket.h
sockios.h
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h
stddef.h
stm.h
string.h
suspend_ioctls.h
swab.h include/uapi/linux/swab: Fix potentially missing __always_inline 2022-11-09 14:06:51 +01:00
switchtec_ioctl.h
sync_file.h
synclink.h
sysctl.h
sysinfo.h
target_core_user.h
taskstats.h
tcp.h tcp: add rcv_wnd and plb_rehash to TCP_INFO 2022-10-28 10:47:42 +01:00
tcp_metrics.h
tdx-guest.h virt: Add TDX guest driver 2022-11-17 11:04:23 -08:00
tee.h
termios.h
thermal.h
time.h
time_types.h
timerfd.h
times.h
timex.h
tiocl.h
tipc.h
tipc_config.h
tipc_netlink.h
tipc_sockets_diag.h
tls.h net: tls: Add ARIA-GCM algorithm 2022-09-27 17:29:09 -07:00
toshiba.h
tty.h
tty_flags.h
types.h
ublk_cmd.h ublk_drv: add START_USER_RECOVERY and END_USER_RECOVERY support 2022-09-23 19:09:56 -06:00
udf_fs_i.h
udmabuf.h
udp.h
uhid.h
uinput.h
uio.h
uleds.h
ultrasound.h
um_timetravel.h
un.h
unistd.h
unix_diag.h
usbdevice_fs.h
usbip.h
userfaultfd.h
userio.h
utime.h
utsname.h
uuid.h
uvcvideo.h
v4l2-common.h headers: Remove some left-over license text in include/uapi/linux/v4l2-* 2022-12-07 17:58:46 +01:00
v4l2-controls.h headers: Remove some left-over license text in include/uapi/linux/v4l2-* 2022-12-07 17:58:46 +01:00
v4l2-dv-timings.h headers: Remove some left-over license text in include/uapi/linux/v4l2-* 2022-12-07 17:58:46 +01:00
v4l2-mediabus.h headers: Remove some left-over license text in include/uapi/linux/v4l2-* 2022-12-07 17:58:46 +01:00
v4l2-subdev.h headers: Remove some left-over license text in include/uapi/linux/v4l2-* 2022-12-07 17:58:46 +01:00
vbox_err.h
vbox_vmmdev_types.h
vboxguest.h
vdpa.h vdpa: merge functionally duplicated dev_features attributes 2022-12-28 05:09:46 -05:00
vduse.h
veth.h
vfio.h vfio: Extend the device migration protocol with PRE_COPY 2022-12-06 12:36:43 -07:00
vfio_ccw.h
vfio_zdev.h
vhost.h
vhost_types.h
videodev2.h media: add nv12_8l128 and nv12_10be_8l128 video format. 2022-11-25 11:01:29 +00:00
virtio_9p.h
virtio_balloon.h
virtio_blk.h virtio_blk: add SECURE ERASE command support 2022-10-07 09:32:41 -04:00
virtio_bt.h virtio_bt: Fix alignment in configuration struct 2022-12-12 14:19:23 -08:00
virtio_config.h
virtio_console.h
virtio_crypto.h
virtio_fs.h
virtio_gpio.h
virtio_gpu.h
virtio_i2c.h
virtio_ids.h
virtio_input.h
virtio_iommu.h
virtio_mem.h
virtio_mmio.h
virtio_net.h uapi/linux/virtio_net.h: Added USO types. 2022-12-12 09:29:56 +00:00
virtio_pci.h
virtio_pcidev.h
virtio_pmem.h
virtio_ring.h
virtio_rng.h
virtio_scmi.h
virtio_scsi.h
virtio_snd.h
virtio_types.h
virtio_vsock.h
vm_sockets.h
vm_sockets_diag.h
vmcore.h
vsockmon.h
vt.h
vtpm_proxy.h
wait.h
watch_queue.h
watchdog.h
wireguard.h
wireless.h
wmi.h
wwan.h
x25.h
xattr.h
xdp_diag.h
xfrm.h xfrm: add new packet offload flag 2022-12-05 10:30:47 +01:00
xilinx-v4l2-controls.h
zorro.h
zorro_ids.h