PATH: //proc/thread-self/root/proc/thread-self/root/proc/self/root/usr/include/linux
FILE_BARU
CREATE
FOLDER_BARU
MKDIR
UPLOAD_FILE
GO
[ .. KEMBALI ]
📄 a.out.h
↓
X
📄 acct.h
↓
X
📄 acrn.h
↓
X
📄 adb.h
↓
X
📄 adfs_fs.h
↓
X
📄 affs_hardblocks.h
↓
X
📄 agpgart.h
↓
X
📄 aio_abi.h
↓
X
📄 am437x-vpfe.h
↓
X
📁 android/
X
📄 apm_bios.h
↓
X
📄 arcfb.h
↓
X
📄 arm_sdei.h
↓
X
📄 aspeed-lpc-ctrl.h
↓
X
📄 aspeed-p2a-ctrl.h
↓
X
📄 atalk.h
↓
X
📄 atm.h
↓
X
📄 atm_eni.h
↓
X
📄 atm_he.h
↓
X
📄 atm_idt77105.h
↓
X
📄 atm_nicstar.h
↓
X
📄 atm_tcp.h
↓
X
📄 atm_zatm.h
↓
X
📄 atmapi.h
↓
X
📄 atmarp.h
↓
X
📄 atmbr2684.h
↓
X
📄 atmclip.h
↓
X
📄 atmdev.h
↓
X
📄 atmioc.h
↓
X
📄 atmlec.h
↓
X
📄 atmmpc.h
↓
X
📄 atmppp.h
↓
X
📄 atmsap.h
↓
X
📄 atmsvc.h
↓
X
📄 audit.h
↓
X
📄 auto_dev-ioctl.h
↓
X
📄 auto_fs.h
↓
X
📄 auto_fs4.h
↓
X
📄 auxvec.h
↓
X
📄 ax25.h
↓
X
📄 batadv_packet.h
↓
X
📄 batman_adv.h
↓
X
📄 baycom.h
↓
X
📄 bcm933xx_hcs.h
↓
X
📄 bfs_fs.h
↓
X
📄 binfmts.h
↓
X
📄 bits.h
↓
X
📄 blkpg.h
↓
X
📄 blktrace_api.h
↓
X
📄 blkzoned.h
↓
X
📄 bpf.h
↓
X
📄 bpf_common.h
↓
X
📄 bpf_perf_event.h
↓
X
📄 bpfilter.h
↓
X
📄 bpqether.h
↓
X
📄 bsg.h
↓
X
📄 bt-bmc.h
↓
X
📄 btf.h
↓
X
📄 btrfs.h
↓
X
📄 btrfs_tree.h
↓
X
📁 byteorder/
X
📄 cachefiles.h
↓
X
📁 caif/
X
📁 can/
X
📄 can.h
↓
X
📄 capability.h
↓
X
📄 capi.h
↓
X
📄 cciss_defs.h
↓
X
📄 cciss_ioctl.h
↓
X
📄 ccs.h
↓
X
📄 cdrom.h
↓
X
📄 cec-funcs.h
↓
X
📄 cec.h
↓
X
📄 cfm_bridge.h
↓
X
📄 cgroupstats.h
↓
X
📄 chio.h
↓
X
📁 cifs/
X
📄 close_range.h
↓
X
📄 cm4000_cs.h
↓
X
📄 cn_proc.h
↓
X
📄 coda.h
↓
X
📄 coff.h
↓
X
📄 connector.h
↓
X
📄 const.h
↓
X
📄 coresight-stm.h
↓
X
📄 cramfs_fs.h
↓
X
📄 cryptouser.h
↓
X
📄 cuda.h
↓
X
📄 cxl_mem.h
↓
X
📄 cycx_cfm.h
↓
X
📄 dcbnl.h
↓
X
📄 dccp.h
↓
X
📄 devlink.h
↓
X
📄 dlm.h
↓
X
📄 dlm_device.h
↓
X
📄 dlm_netlink.h
↓
X
📄 dlm_plock.h
↓
X
📄 dlmconstants.h
↓
X
📄 dm-ioctl.h
↓
X
📄 dm-log-userspace.h
↓
X
📄 dma-buf.h
↓
X
📄 dma-heap.h
↓
X
📄 dn.h
↓
X
📄 dns_resolver.h
↓
X
📄 dpll.h
↓
X
📄 dqblk_xfs.h
↓
X
📁 dvb/
X
📄 edd.h
↓
X
📄 efs_fs_sb.h
↓
X
📄 elf-em.h
↓
X
📄 elf-fdpic.h
↓
X
📄 elf.h
↓
X
📄 errno.h
↓
X
📄 errqueue.h
↓
X
📄 erspan.h
↓
X
📄 ethtool.h
↓
X
📄 ethtool_netlink.h
↓
X
📄 ethtool_netlink_generated.h
↓
X
📄 eventfd.h
↓
X
📄 eventpoll.h
↓
X
📄 f2fs.h
↓
X
📄 fadvise.h
↓
X
📄 falloc.h
↓
X
📄 fanotify.h
↓
X
📄 fb.h
↓
X
📄 fcntl.h
↓
X
📄 fd.h
↓
X
📄 fdreg.h
↓
X
📄 fib_rules.h
↓
X
📄 fiemap.h
↓
X
📄 filter.h
↓
X
📄 firewire-cdev.h
↓
X
📄 firewire-constants.h
↓
X
📄 fou.h
↓
X
📄 fpga-dfl.h
↓
X
📄 fs.h
↓
X
📄 fscrypt.h
↓
X
📄 fsi.h
↓
X
📄 fsl_hypervisor.h
↓
X
📄 fsl_mc.h
↓
X
📄 fsmap.h
↓
X
📄 fsverity.h
↓
X
📄 fuse.h
↓
X
📄 futex.h
↓
X
📄 gameport.h
↓
X
📄 gen_stats.h
↓
X
📄 genetlink.h
↓
X
📁 genwqe/
X
📄 gfs2_ondisk.h
↓
X
📄 gpio.h
↓
X
📄 gsmmux.h
↓
X
📄 gtp.h
↓
X
📄 handshake.h
↓
X
📄 hash_info.h
↓
X
📁 hdlc/
X
📄 hdlc.h
↓
X
📄 hdlcdrv.h
↓
X
📄 hdreg.h
↓
X
📄 hid.h
↓
X
📄 hiddev.h
↓
X
📄 hidraw.h
↓
X
📄 hpet.h
↓
X
📁 hsi/
X
📄 hsr_netlink.h
↓
X
📄 hw_breakpoint.h
↓
X
📄 hyperv.h
↓
X
📄 i2c-dev.h
↓
X
📄 i2c.h
↓
X
📄 i2o-dev.h
↓
X
📄 i8k.h
↓
X
📄 icmp.h
↓
X
📄 icmpv6.h
↓
X
📄 idxd.h
↓
X
📄 if.h
↓
X
📄 if_addr.h
↓
X
📄 if_addrlabel.h
↓
X
📄 if_alg.h
↓
X
📄 if_arcnet.h
↓
X
📄 if_arp.h
↓
X
📄 if_bonding.h
↓
X
📄 if_bridge.h
↓
X
📄 if_cablemodem.h
↓
X
📄 if_eql.h
↓
X
📄 if_ether.h
↓
X
📄 if_fc.h
↓
X
📄 if_fddi.h
↓
X
📄 if_hippi.h
↓
X
📄 if_infiniband.h
↓
X
📄 if_link.h
↓
X
📄 if_ltalk.h
↓
X
📄 if_macsec.h
↓
X
📄 if_packet.h
↓
X
📄 if_phonet.h
↓
X
📄 if_plip.h
↓
X
📄 if_ppp.h
↓
X
📄 if_pppol2tp.h
↓
X
📄 if_pppox.h
↓
X
📄 if_slip.h
↓
X
📄 if_team.h
↓
X
📄 if_tun.h
↓
X
📄 if_tunnel.h
↓
X
📄 if_vlan.h
↓
X
📄 if_x25.h
↓
X
📄 if_xdp.h
↓
X
📄 ife.h
↓
X
📄 igmp.h
↓
X
📁 iio/
X
📄 ila.h
↓
X
📄 in.h
↓
X
📄 in6.h
↓
X
📄 in_route.h
↓
X
📄 inet_diag.h
↓
X
📄 inotify.h
↓
X
📄 input-event-codes.h
↓
X
📄 input.h
↓
X
📄 io_uring.h
↓
X
📄 ioctl.h
↓
X
📄 iommufd.h
↓
X
📄 ioprio.h
↓
X
📄 ip.h
↓
X
📄 ip6_tunnel.h
↓
X
📄 ip_vs.h
↓
X
📄 ipc.h
↓
X
📄 ipmi.h
↓
X
📄 ipmi_bmc.h
↓
X
📄 ipmi_msgdefs.h
↓
X
📄 ipmi_ssif_bmc.h
↓
X
📄 ipsec.h
↓
X
📄 ipv6.h
↓
X
📄 ipv6_route.h
↓
X
📄 ipx.h
↓
X
📄 irqnr.h
↓
X
📁 isdn/
X
📄 iso_fs.h
↓
X
📄 isst_if.h
↓
X
📄 ivtv.h
↓
X
📄 ivtvfb.h
↓
X
📄 jffs2.h
↓
X
📄 joystick.h
↓
X
📄 kcm.h
↓
X
📄 kcmp.h
↓
X
📄 kcov.h
↓
X
📄 kd.h
↓
X
📄 kdev_t.h
↓
X
📄 kernel-page-flags.h
↓
X
📄 kernel.h
↓
X
📄 kernelcapi.h
↓
X
📄 kexec.h
↓
X
📄 keyboard.h
↓
X
📄 keyctl.h
↓
X
📄 kfd_ioctl.h
↓
X
📄 kfd_sysfs.h
↓
X
📄 kvm.h
↓
X
📄 kvm_para.h
↓
X
📄 l2tp.h
↓
X
📄 landlock.h
↓
X
📄 libc-compat.h
↓
X
📄 limits.h
↓
X
📄 lirc.h
↓
X
📄 llc.h
↓
X
📄 loadpin.h
↓
X
📄 loop.h
↓
X
📄 lp.h
↓
X
📄 lsm.h
↓
X
📄 lwtunnel.h
↓
X
📄 magic.h
↓
X
📄 major.h
↓
X
📄 map_to_7segment.h
↓
X
📄 matroxfb.h
↓
X
📄 max2175.h
↓
X
📄 mdio.h
↓
X
📄 media-bus-format.h
↓
X
📄 media.h
↓
X
📄 mei.h
↓
X
📄 mei_uuid.h
↓
X
📄 membarrier.h
↓
X
📄 memfd.h
↓
X
📄 mempolicy.h
↓
X
📄 meye.h
↓
X
📄 mii.h
↓
X
📄 minix_fs.h
↓
X
📁 misc/
X
📄 mman.h
↓
X
📁 mmc/
X
📄 mmtimer.h
↓
X
📄 module.h
↓
X
📄 mount.h
↓
X
📄 mpls.h
↓
X
📄 mpls_iptunnel.h
↓
X
📄 mptcp.h
↓
X
📄 mptcp_pm.h
↓
X
📄 mqueue.h
↓
X
📄 mroute.h
↓
X
📄 mroute6.h
↓
X
📄 mrp_bridge.h
↓
X
📄 msdos_fs.h
↓
X
📄 msg.h
↓
X
📄 mshv.h
↓
X
📄 mtio.h
↓
X
📄 nbd-netlink.h
↓
X
📄 nbd.h
↓
X
📄 ncsi.h
↓
X
📄 ndctl.h
↓
X
📄 neighbour.h
↓
X
📄 net.h
↓
X
📄 net_dropmon.h
↓
X
📄 net_namespace.h
↓
X
📄 net_shaper.h
↓
X
📄 net_tstamp.h
↓
X
📄 netconf.h
↓
X
📄 netdev.h
↓
X
📄 netdevice.h
↓
X
📁 netfilter/
X
📄 netfilter.h
↓
X
📁 netfilter_arp/
X
📄 netfilter_arp.h
↓
X
📁 netfilter_bridge/
X
📄 netfilter_bridge.h
↓
X
📄 netfilter_decnet.h
↓
X
📁 netfilter_ipv4/
X
📄 netfilter_ipv4.h
↓
X
📁 netfilter_ipv6/
X
📄 netfilter_ipv6.h
↓
X
📄 netlink.h
↓
X
📄 netlink_diag.h
↓
X
📄 netrom.h
↓
X
📄 nexthop.h
↓
X
📄 nfc.h
↓
X
📄 nfs.h
↓
X
📄 nfs2.h
↓
X
📄 nfs3.h
↓
X
📄 nfs4.h
↓
X
📄 nfs4_mount.h
↓
X
📄 nfs_fs.h
↓
X
📄 nfs_idmap.h
↓
X
📄 nfs_mount.h
↓
X
📄 nfsacl.h
↓
X
📁 nfsd/
X
📄 nfsd_netlink.h
↓
X
📄 nilfs2_api.h
↓
X
📄 nilfs2_ondisk.h
↓
X
📄 nitro_enclaves.h
↓
X
📄 nl80211.h
↓
X
📄 nsfs.h
↓
X
📄 nubus.h
↓
X
📄 nvme_ioctl.h
↓
X
📄 nvram.h
↓
X
📄 omap3isp.h
↓
X
📄 omapfb.h
↓
X
📄 oom.h
↓
X
📄 openat2.h
↓
X
📄 openvswitch.h
↓
X
📄 packet_diag.h
↓
X
📄 param.h
↓
X
📄 parport.h
↓
X
📄 patchkey.h
↓
X
📄 pci.h
↓
X
📄 pci_regs.h
↓
X
📄 pcitest.h
↓
X
📄 perf_event.h
↓
X
📄 personality.h
↓
X
📄 pfkeyv2.h
↓
X
📄 pfrut.h
↓
X
📄 pg.h
↓
X
📄 phantom.h
↓
X
📄 phonet.h
↓
X
📄 pidfd.h
↓
X
📄 pkt_cls.h
↓
X
📄 pkt_sched.h
↓
X
📄 pktcdvd.h
↓
X
📄 pmu.h
↓
X
📄 poll.h
↓
X
📄 posix_acl.h
↓
X
📄 posix_acl_xattr.h
↓
X
📄 posix_types.h
↓
X
📄 ppdev.h
↓
X
📄 ppp-comp.h
↓
X
📄 ppp-ioctl.h
↓
X
📄 ppp_defs.h
↓
X
📄 pps.h
↓
X
📄 pr.h
↓
X
📄 prctl.h
↓
X
📄 psample.h
↓
X
📄 psci.h
↓
X
📄 psp-dbc.h
↓
X
📄 psp-sev.h
↓
X
📄 ptp_clock.h
↓
X
📄 ptrace.h
↓
X
📄 qemu_fw_cfg.h
↓
X
📄 qnx4_fs.h
↓
X
📄 qnxtypes.h
↓
X
📄 qrtr.h
↓
X
📄 quota.h
↓
X
📄 radeonfb.h
↓
X
📁 raid/
X
📄 random.h
↓
X
📄 rds.h
↓
X
📄 reboot.h
↓
X
📄 reiserfs_fs.h
↓
X
📄 reiserfs_xattr.h
↓
X
📄 remoteproc_cdev.h
↓
X
📄 resource.h
↓
X
📄 rfkill.h
↓
X
📄 rio_cm_cdev.h
↓
X
📄 rio_mport_cdev.h
↓
X
📄 rkisp1-config.h
↓
X
📄 romfs_fs.h
↓
X
📄 rose.h
↓
X
📄 route.h
↓
X
📄 rpl.h
↓
X
📄 rpl_iptunnel.h
↓
X
📄 rpmsg.h
↓
X
📄 rpmsg_types.h
↓
X
📄 rseq.h
↓
X
📄 rtc.h
↓
X
📄 rtnetlink.h
↓
X
📄 rxrpc.h
↓
X
📄 scc.h
↓
X
📁 sched/
X
📄 sched.h
↓
X
📄 scif_ioctl.h
↓
X
📄 screen_info.h
↓
X
📄 sctp.h
↓
X
📄 seccomp.h
↓
X
📄 securebits.h
↓
X
📄 sed-opal.h
↓
X
📄 seg6.h
↓
X
📄 seg6_genl.h
↓
X
📄 seg6_hmac.h
↓
X
📄 seg6_iptunnel.h
↓
X
📄 seg6_local.h
↓
X
📄 selinux_netlink.h
↓
X
📄 sem.h
↓
X
📄 serial.h
↓
X
📄 serial_core.h
↓
X
📄 serial_reg.h
↓
X
📄 serio.h
↓
X
📄 sev-guest.h
↓
X
📄 shm.h
↓
X
📄 signal.h
↓
X
📄 signalfd.h
↓
X
📄 smc.h
↓
X
📄 smc_diag.h
↓
X
📄 smiapp.h
↓
X
📄 snmp.h
↓
X
📄 sock_diag.h
↓
X
📄 socket.h
↓
X
📄 sockios.h
↓
X
📄 sonet.h
↓
X
📄 sonypi.h
↓
X
📄 sound.h
↓
X
📄 soundcard.h
↓
X
📁 spi/
X
📄 stat.h
↓
X
📄 stddef.h
↓
X
📄 stm.h
↓
X
📄 string.h
↓
X
📁 sunrpc/
X
📁 surface_aggregator/
X
📄 suspend_ioctls.h
↓
X
📄 swab.h
↓
X
📄 switchtec_ioctl.h
↓
X
📄 sync_file.h
↓
X
📄 synclink.h
↓
X
📄 sysctl.h
↓
X
📄 sysinfo.h
↓
X
📄 target_core_user.h
↓
X
📄 taskstats.h
↓
X
📁 tc_act/
X
📁 tc_ematch/
X
📄 tcp.h
↓
X
📄 tcp_metrics.h
↓
X
📄 tdx-guest.h
↓
X
📄 tee.h
↓
X
📄 termios.h
↓
X
📄 thermal.h
↓
X
📄 time.h
↓
X
📄 time_types.h
↓
X
📄 timerfd.h
↓
X
📄 times.h
↓
X
📄 timex.h
↓
X
📄 tiocl.h
↓
X
📄 tipc.h
↓
X
📄 tipc_config.h
↓
X
📄 tipc_netlink.h
↓
X
📄 tipc_sockets_diag.h
↓
X
📄 tls.h
↓
X
📄 toshiba.h
↓
X
📄 tps6594_pfsm.h
↓
X
📄 tty.h
↓
X
📄 tty_flags.h
↓
X
📄 types.h
↓
X
📄 udf_fs_i.h
↓
X
📄 udmabuf.h
↓
X
📄 udp.h
↓
X
📄 uhid.h
↓
X
📄 uinput.h
↓
X
📄 uio.h
↓
X
📄 uleds.h
↓
X
📄 ultrasound.h
↓
X
📄 um_timetravel.h
↓
X
📄 un.h
↓
X
📄 unistd.h
↓
X
📄 unix_diag.h
↓
X
📁 usb/
X
📄 usbdevice_fs.h
↓
X
📄 usbip.h
↓
X
📄 userfaultfd.h
↓
X
📄 userio.h
↓
X
📄 utime.h
↓
X
📄 utsname.h
↓
X
📄 uuid.h
↓
X
📄 uvcvideo.h
↓
X
📄 v4l2-common.h
↓
X
📄 v4l2-controls.h
↓
X
📄 v4l2-dv-timings.h
↓
X
📄 v4l2-mediabus.h
↓
X
📄 v4l2-subdev.h
↓
X
📄 vbox_err.h
↓
X
📄 vbox_vmmdev_types.h
↓
X
📄 vboxguest.h
↓
X
📄 vdpa.h
↓
X
📄 vduse.h
↓
X
📄 version.h
↓
X
📄 veth.h
↓
X
📄 vfio.h
↓
X
📄 vfio_ccw.h
↓
X
📄 vfio_zdev.h
↓
X
📄 vhost.h
↓
X
📄 vhost_types.h
↓
X
📄 videodev2.h
↓
X
📄 virtio_9p.h
↓
X
📄 virtio_balloon.h
↓
X
📄 virtio_blk.h
↓
X
📄 virtio_bt.h
↓
X
📄 virtio_config.h
↓
X
📄 virtio_console.h
↓
X
📄 virtio_crypto.h
↓
X
📄 virtio_fs.h
↓
X
📄 virtio_gpio.h
↓
X
📄 virtio_gpu.h
↓
X
📄 virtio_i2c.h
↓
X
📄 virtio_ids.h
↓
X
📄 virtio_input.h
↓
X
📄 virtio_iommu.h
↓
X
📄 virtio_mem.h
↓
X
📄 virtio_mmio.h
↓
X
📄 virtio_net.h
↓
X
📄 virtio_pci.h
↓
X
📄 virtio_pcidev.h
↓
X
📄 virtio_pmem.h
↓
X
📄 virtio_ring.h
↓
X
📄 virtio_rng.h
↓
X
📄 virtio_scmi.h
↓
X
📄 virtio_scsi.h
↓
X
📄 virtio_snd.h
↓
X
📄 virtio_types.h
↓
X
📄 virtio_vsock.h
↓
X
📄 vm_sockets.h
↓
X
📄 vm_sockets_diag.h
↓
X
📄 vmcore.h
↓
X
📄 vsockmon.h
↓
X
📄 vt.h
↓
X
📄 vtpm_proxy.h
↓
X
📄 wait.h
↓
X
📄 watch_queue.h
↓
X
📄 watchdog.h
↓
X
📄 wireguard.h
↓
X
📄 wireless.h
↓
X
📄 wmi.h
↓
X
📄 wwan.h
↓
X
📄 x25.h
↓
X
📄 xattr.h
↓
X
📄 xdp_diag.h
↓
X
📄 xfrm.h
↓
X
📄 xilinx-v4l2-controls.h
↓
X
📄 zorro.h
↓
X
📄 zorro_ids.h
↓
X
SAVING...
BERHASIL DIUBAH!
EDITING: if_bridge.h
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ /* * Linux ethernet bridge * * Authors: * Lennert Buytenhek <buytenh@gnu.org> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. */ #ifndef _LINUX_IF_BRIDGE_H #define _LINUX_IF_BRIDGE_H #include <linux/types.h> #include <linux/if_ether.h> #include <linux/in6.h> #define SYSFS_BRIDGE_ATTR "bridge" #define SYSFS_BRIDGE_FDB "brforward" #define SYSFS_BRIDGE_PORT_SUBDIR "brif" #define SYSFS_BRIDGE_PORT_ATTR "brport" #define SYSFS_BRIDGE_PORT_LINK "bridge" #define BRCTL_VERSION 1 #define BRCTL_GET_VERSION 0 #define BRCTL_GET_BRIDGES 1 #define BRCTL_ADD_BRIDGE 2 #define BRCTL_DEL_BRIDGE 3 #define BRCTL_ADD_IF 4 #define BRCTL_DEL_IF 5 #define BRCTL_GET_BRIDGE_INFO 6 #define BRCTL_GET_PORT_LIST 7 #define BRCTL_SET_BRIDGE_FORWARD_DELAY 8 #define BRCTL_SET_BRIDGE_HELLO_TIME 9 #define BRCTL_SET_BRIDGE_MAX_AGE 10 #define BRCTL_SET_AGEING_TIME 11 #define BRCTL_SET_GC_INTERVAL 12 #define BRCTL_GET_PORT_INFO 13 #define BRCTL_SET_BRIDGE_STP_STATE 14 #define BRCTL_SET_BRIDGE_PRIORITY 15 #define BRCTL_SET_PORT_PRIORITY 16 #define BRCTL_SET_PATH_COST 17 #define BRCTL_GET_FDB_ENTRIES 18 #define BR_STATE_DISABLED 0 #define BR_STATE_LISTENING 1 #define BR_STATE_LEARNING 2 #define BR_STATE_FORWARDING 3 #define BR_STATE_BLOCKING 4 struct __bridge_info { __u64 designated_root; __u64 bridge_id; __u32 root_path_cost; __u32 max_age; __u32 hello_time; __u32 forward_delay; __u32 bridge_max_age; __u32 bridge_hello_time; __u32 bridge_forward_delay; __u8 topology_change; __u8 topology_change_detected; __u8 root_port; __u8 stp_enabled; __u32 ageing_time; __u32 gc_interval; __u32 hello_timer_value; __u32 tcn_timer_value; __u32 topology_change_timer_value; __u32 gc_timer_value; }; struct __port_info { __u64 designated_root; __u64 designated_bridge; __u16 port_id; __u16 designated_port; __u32 path_cost; __u32 designated_cost; __u8 state; __u8 top_change_ack; __u8 config_pending; __u8 unused0; __u32 message_age_timer_value; __u32 forward_delay_timer_value; __u32 hold_timer_value; }; struct __fdb_entry { __u8 mac_addr[ETH_ALEN]; __u8 port_no; __u8 is_local; __u32 ageing_timer_value; __u8 port_hi; __u8 pad0; __u16 unused; }; /* Bridge Flags */ #define BRIDGE_FLAGS_MASTER 1 /* Bridge command to/from master */ #define BRIDGE_FLAGS_SELF 2 /* Bridge command to/from lowerdev */ #define BRIDGE_MODE_VEB 0 /* Default loopback mode */ #define BRIDGE_MODE_VEPA 1 /* 802.1Qbg defined VEPA mode */ #define BRIDGE_MODE_UNDEF 0xFFFF /* mode undefined */ /* Bridge management nested attributes * [IFLA_AF_SPEC] = { * [IFLA_BRIDGE_FLAGS] * [IFLA_BRIDGE_MODE] * [IFLA_BRIDGE_VLAN_INFO] * } */ enum { IFLA_BRIDGE_FLAGS, IFLA_BRIDGE_MODE, IFLA_BRIDGE_VLAN_INFO, IFLA_BRIDGE_VLAN_TUNNEL_INFO, IFLA_BRIDGE_MRP, IFLA_BRIDGE_CFM, IFLA_BRIDGE_MST, __IFLA_BRIDGE_MAX, }; #define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1) #define BRIDGE_VLAN_INFO_MASTER (1<<0) /* Operate on Bridge device as well */ #define BRIDGE_VLAN_INFO_PVID (1<<1) /* VLAN is PVID, ingress untagged */ #define BRIDGE_VLAN_INFO_UNTAGGED (1<<2) /* VLAN egresses untagged */ #define BRIDGE_VLAN_INFO_RANGE_BEGIN (1<<3) /* VLAN is start of vlan range */ #define BRIDGE_VLAN_INFO_RANGE_END (1<<4) /* VLAN is end of vlan range */ #define BRIDGE_VLAN_INFO_BRENTRY (1<<5) /* Global bridge VLAN entry */ #define BRIDGE_VLAN_INFO_ONLY_OPTS (1<<6) /* Skip create/delete/flags */ struct bridge_vlan_info { __u16 flags; __u16 vid; }; enum { IFLA_BRIDGE_VLAN_TUNNEL_UNSPEC, IFLA_BRIDGE_VLAN_TUNNEL_ID, IFLA_BRIDGE_VLAN_TUNNEL_VID, IFLA_BRIDGE_VLAN_TUNNEL_FLAGS, __IFLA_BRIDGE_VLAN_TUNNEL_MAX, }; #define IFLA_BRIDGE_VLAN_TUNNEL_MAX (__IFLA_BRIDGE_VLAN_TUNNEL_MAX - 1) struct bridge_vlan_xstats { __u64 rx_bytes; __u64 rx_packets; __u64 tx_bytes; __u64 tx_packets; __u16 vid; __u16 flags; __u32 pad2; }; enum { IFLA_BRIDGE_MRP_UNSPEC, IFLA_BRIDGE_MRP_INSTANCE, IFLA_BRIDGE_MRP_PORT_STATE, IFLA_BRIDGE_MRP_PORT_ROLE, IFLA_BRIDGE_MRP_RING_STATE, IFLA_BRIDGE_MRP_RING_ROLE, IFLA_BRIDGE_MRP_START_TEST, IFLA_BRIDGE_MRP_INFO, IFLA_BRIDGE_MRP_IN_ROLE, IFLA_BRIDGE_MRP_IN_STATE, IFLA_BRIDGE_MRP_START_IN_TEST, __IFLA_BRIDGE_MRP_MAX, }; #define IFLA_BRIDGE_MRP_MAX (__IFLA_BRIDGE_MRP_MAX - 1) enum { IFLA_BRIDGE_MRP_INSTANCE_UNSPEC, IFLA_BRIDGE_MRP_INSTANCE_RING_ID, IFLA_BRIDGE_MRP_INSTANCE_P_IFINDEX, IFLA_BRIDGE_MRP_INSTANCE_S_IFINDEX, IFLA_BRIDGE_MRP_INSTANCE_PRIO, __IFLA_BRIDGE_MRP_INSTANCE_MAX, }; #define IFLA_BRIDGE_MRP_INSTANCE_MAX (__IFLA_BRIDGE_MRP_INSTANCE_MAX - 1) enum { IFLA_BRIDGE_MRP_PORT_STATE_UNSPEC, IFLA_BRIDGE_MRP_PORT_STATE_STATE, __IFLA_BRIDGE_MRP_PORT_STATE_MAX, }; #define IFLA_BRIDGE_MRP_PORT_STATE_MAX (__IFLA_BRIDGE_MRP_PORT_STATE_MAX - 1) enum { IFLA_BRIDGE_MRP_PORT_ROLE_UNSPEC, IFLA_BRIDGE_MRP_PORT_ROLE_ROLE, __IFLA_BRIDGE_MRP_PORT_ROLE_MAX, }; #define IFLA_BRIDGE_MRP_PORT_ROLE_MAX (__IFLA_BRIDGE_MRP_PORT_ROLE_MAX - 1) enum { IFLA_BRIDGE_MRP_RING_STATE_UNSPEC, IFLA_BRIDGE_MRP_RING_STATE_RING_ID, IFLA_BRIDGE_MRP_RING_STATE_STATE, __IFLA_BRIDGE_MRP_RING_STATE_MAX, }; #define IFLA_BRIDGE_MRP_RING_STATE_MAX (__IFLA_BRIDGE_MRP_RING_STATE_MAX - 1) enum { IFLA_BRIDGE_MRP_RING_ROLE_UNSPEC, IFLA_BRIDGE_MRP_RING_ROLE_RING_ID, IFLA_BRIDGE_MRP_RING_ROLE_ROLE, __IFLA_BRIDGE_MRP_RING_ROLE_MAX, }; #define IFLA_BRIDGE_MRP_RING_ROLE_MAX (__IFLA_BRIDGE_MRP_RING_ROLE_MAX - 1) enum { IFLA_BRIDGE_MRP_START_TEST_UNSPEC, IFLA_BRIDGE_MRP_START_TEST_RING_ID, IFLA_BRIDGE_MRP_START_TEST_INTERVAL, IFLA_BRIDGE_MRP_START_TEST_MAX_MISS, IFLA_BRIDGE_MRP_START_TEST_PERIOD, IFLA_BRIDGE_MRP_START_TEST_MONITOR, __IFLA_BRIDGE_MRP_START_TEST_MAX, }; #define IFLA_BRIDGE_MRP_START_TEST_MAX (__IFLA_BRIDGE_MRP_START_TEST_MAX - 1) enum { IFLA_BRIDGE_MRP_INFO_UNSPEC, IFLA_BRIDGE_MRP_INFO_RING_ID, IFLA_BRIDGE_MRP_INFO_P_IFINDEX, IFLA_BRIDGE_MRP_INFO_S_IFINDEX, IFLA_BRIDGE_MRP_INFO_PRIO, IFLA_BRIDGE_MRP_INFO_RING_STATE, IFLA_BRIDGE_MRP_INFO_RING_ROLE, IFLA_BRIDGE_MRP_INFO_TEST_INTERVAL, IFLA_BRIDGE_MRP_INFO_TEST_MAX_MISS, IFLA_BRIDGE_MRP_INFO_TEST_MONITOR, IFLA_BRIDGE_MRP_INFO_I_IFINDEX, IFLA_BRIDGE_MRP_INFO_IN_STATE, IFLA_BRIDGE_MRP_INFO_IN_ROLE, IFLA_BRIDGE_MRP_INFO_IN_TEST_INTERVAL, IFLA_BRIDGE_MRP_INFO_IN_TEST_MAX_MISS, __IFLA_BRIDGE_MRP_INFO_MAX, }; #define IFLA_BRIDGE_MRP_INFO_MAX (__IFLA_BRIDGE_MRP_INFO_MAX - 1) enum { IFLA_BRIDGE_MRP_IN_STATE_UNSPEC, IFLA_BRIDGE_MRP_IN_STATE_IN_ID, IFLA_BRIDGE_MRP_IN_STATE_STATE, __IFLA_BRIDGE_MRP_IN_STATE_MAX, }; #define IFLA_BRIDGE_MRP_IN_STATE_MAX (__IFLA_BRIDGE_MRP_IN_STATE_MAX - 1) enum { IFLA_BRIDGE_MRP_IN_ROLE_UNSPEC, IFLA_BRIDGE_MRP_IN_ROLE_RING_ID, IFLA_BRIDGE_MRP_IN_ROLE_IN_ID, IFLA_BRIDGE_MRP_IN_ROLE_ROLE, IFLA_BRIDGE_MRP_IN_ROLE_I_IFINDEX, __IFLA_BRIDGE_MRP_IN_ROLE_MAX, }; #define IFLA_BRIDGE_MRP_IN_ROLE_MAX (__IFLA_BRIDGE_MRP_IN_ROLE_MAX - 1) enum { IFLA_BRIDGE_MRP_START_IN_TEST_UNSPEC, IFLA_BRIDGE_MRP_START_IN_TEST_IN_ID, IFLA_BRIDGE_MRP_START_IN_TEST_INTERVAL, IFLA_BRIDGE_MRP_START_IN_TEST_MAX_MISS, IFLA_BRIDGE_MRP_START_IN_TEST_PERIOD, __IFLA_BRIDGE_MRP_START_IN_TEST_MAX, }; #define IFLA_BRIDGE_MRP_START_IN_TEST_MAX (__IFLA_BRIDGE_MRP_START_IN_TEST_MAX - 1) struct br_mrp_instance { __u32 ring_id; __u32 p_ifindex; __u32 s_ifindex; __u16 prio; }; struct br_mrp_ring_state { __u32 ring_id; __u32 ring_state; }; struct br_mrp_ring_role { __u32 ring_id; __u32 ring_role; }; struct br_mrp_start_test { __u32 ring_id; __u32 interval; __u32 max_miss; __u32 period; __u32 monitor; }; struct br_mrp_in_state { __u32 in_state; __u16 in_id; }; struct br_mrp_in_role { __u32 ring_id; __u32 in_role; __u32 i_ifindex; __u16 in_id; }; struct br_mrp_start_in_test { __u32 interval; __u32 max_miss; __u32 period; __u16 in_id; }; enum { IFLA_BRIDGE_CFM_UNSPEC, IFLA_BRIDGE_CFM_MEP_CREATE, IFLA_BRIDGE_CFM_MEP_DELETE, IFLA_BRIDGE_CFM_MEP_CONFIG, IFLA_BRIDGE_CFM_CC_CONFIG, IFLA_BRIDGE_CFM_CC_PEER_MEP_ADD, IFLA_BRIDGE_CFM_CC_PEER_MEP_REMOVE, IFLA_BRIDGE_CFM_CC_RDI, IFLA_BRIDGE_CFM_CC_CCM_TX, IFLA_BRIDGE_CFM_MEP_CREATE_INFO, IFLA_BRIDGE_CFM_MEP_CONFIG_INFO, IFLA_BRIDGE_CFM_CC_CONFIG_INFO, IFLA_BRIDGE_CFM_CC_RDI_INFO, IFLA_BRIDGE_CFM_CC_CCM_TX_INFO, IFLA_BRIDGE_CFM_CC_PEER_MEP_INFO, IFLA_BRIDGE_CFM_MEP_STATUS_INFO, IFLA_BRIDGE_CFM_CC_PEER_STATUS_INFO, __IFLA_BRIDGE_CFM_MAX, }; #define IFLA_BRIDGE_CFM_MAX (__IFLA_BRIDGE_CFM_MAX - 1) enum { IFLA_BRIDGE_CFM_MEP_CREATE_UNSPEC, IFLA_BRIDGE_CFM_MEP_CREATE_INSTANCE, IFLA_BRIDGE_CFM_MEP_CREATE_DOMAIN, IFLA_BRIDGE_CFM_MEP_CREATE_DIRECTION, IFLA_BRIDGE_CFM_MEP_CREATE_IFINDEX, __IFLA_BRIDGE_CFM_MEP_CREATE_MAX, }; #define IFLA_BRIDGE_CFM_MEP_CREATE_MAX (__IFLA_BRIDGE_CFM_MEP_CREATE_MAX - 1) enum { IFLA_BRIDGE_CFM_MEP_DELETE_UNSPEC, IFLA_BRIDGE_CFM_MEP_DELETE_INSTANCE, __IFLA_BRIDGE_CFM_MEP_DELETE_MAX, }; #define IFLA_BRIDGE_CFM_MEP_DELETE_MAX (__IFLA_BRIDGE_CFM_MEP_DELETE_MAX - 1) enum { IFLA_BRIDGE_CFM_MEP_CONFIG_UNSPEC, IFLA_BRIDGE_CFM_MEP_CONFIG_INSTANCE, IFLA_BRIDGE_CFM_MEP_CONFIG_UNICAST_MAC, IFLA_BRIDGE_CFM_MEP_CONFIG_MDLEVEL, IFLA_BRIDGE_CFM_MEP_CONFIG_MEPID, __IFLA_BRIDGE_CFM_MEP_CONFIG_MAX, }; #define IFLA_BRIDGE_CFM_MEP_CONFIG_MAX (__IFLA_BRIDGE_CFM_MEP_CONFIG_MAX - 1) enum { IFLA_BRIDGE_CFM_CC_CONFIG_UNSPEC, IFLA_BRIDGE_CFM_CC_CONFIG_INSTANCE, IFLA_BRIDGE_CFM_CC_CONFIG_ENABLE, IFLA_BRIDGE_CFM_CC_CONFIG_EXP_INTERVAL, IFLA_BRIDGE_CFM_CC_CONFIG_EXP_MAID, __IFLA_BRIDGE_CFM_CC_CONFIG_MAX, }; #define IFLA_BRIDGE_CFM_CC_CONFIG_MAX (__IFLA_BRIDGE_CFM_CC_CONFIG_MAX - 1) enum { IFLA_BRIDGE_CFM_CC_PEER_MEP_UNSPEC, IFLA_BRIDGE_CFM_CC_PEER_MEP_INSTANCE, IFLA_BRIDGE_CFM_CC_PEER_MEPID, __IFLA_BRIDGE_CFM_CC_PEER_MEP_MAX, }; #define IFLA_BRIDGE_CFM_CC_PEER_MEP_MAX (__IFLA_BRIDGE_CFM_CC_PEER_MEP_MAX - 1) enum { IFLA_BRIDGE_CFM_CC_RDI_UNSPEC, IFLA_BRIDGE_CFM_CC_RDI_INSTANCE, IFLA_BRIDGE_CFM_CC_RDI_RDI, __IFLA_BRIDGE_CFM_CC_RDI_MAX, }; #define IFLA_BRIDGE_CFM_CC_RDI_MAX (__IFLA_BRIDGE_CFM_CC_RDI_MAX - 1) enum { IFLA_BRIDGE_CFM_CC_CCM_TX_UNSPEC, IFLA_BRIDGE_CFM_CC_CCM_TX_INSTANCE, IFLA_BRIDGE_CFM_CC_CCM_TX_DMAC, IFLA_BRIDGE_CFM_CC_CCM_TX_SEQ_NO_UPDATE, IFLA_BRIDGE_CFM_CC_CCM_TX_PERIOD, IFLA_BRIDGE_CFM_CC_CCM_TX_IF_TLV, IFLA_BRIDGE_CFM_CC_CCM_TX_IF_TLV_VALUE, IFLA_BRIDGE_CFM_CC_CCM_TX_PORT_TLV, IFLA_BRIDGE_CFM_CC_CCM_TX_PORT_TLV_VALUE, __IFLA_BRIDGE_CFM_CC_CCM_TX_MAX, }; #define IFLA_BRIDGE_CFM_CC_CCM_TX_MAX (__IFLA_BRIDGE_CFM_CC_CCM_TX_MAX - 1) enum { IFLA_BRIDGE_CFM_MEP_STATUS_UNSPEC, IFLA_BRIDGE_CFM_MEP_STATUS_INSTANCE, IFLA_BRIDGE_CFM_MEP_STATUS_OPCODE_UNEXP_SEEN, IFLA_BRIDGE_CFM_MEP_STATUS_VERSION_UNEXP_SEEN, IFLA_BRIDGE_CFM_MEP_STATUS_RX_LEVEL_LOW_SEEN, __IFLA_BRIDGE_CFM_MEP_STATUS_MAX, }; #define IFLA_BRIDGE_CFM_MEP_STATUS_MAX (__IFLA_BRIDGE_CFM_MEP_STATUS_MAX - 1) enum { IFLA_BRIDGE_CFM_CC_PEER_STATUS_UNSPEC, IFLA_BRIDGE_CFM_CC_PEER_STATUS_INSTANCE, IFLA_BRIDGE_CFM_CC_PEER_STATUS_PEER_MEPID, IFLA_BRIDGE_CFM_CC_PEER_STATUS_CCM_DEFECT, IFLA_BRIDGE_CFM_CC_PEER_STATUS_RDI, IFLA_BRIDGE_CFM_CC_PEER_STATUS_PORT_TLV_VALUE, IFLA_BRIDGE_CFM_CC_PEER_STATUS_IF_TLV_VALUE, IFLA_BRIDGE_CFM_CC_PEER_STATUS_SEEN, IFLA_BRIDGE_CFM_CC_PEER_STATUS_TLV_SEEN, IFLA_BRIDGE_CFM_CC_PEER_STATUS_SEQ_UNEXP_SEEN, __IFLA_BRIDGE_CFM_CC_PEER_STATUS_MAX, }; #define IFLA_BRIDGE_CFM_CC_PEER_STATUS_MAX (__IFLA_BRIDGE_CFM_CC_PEER_STATUS_MAX - 1) enum { IFLA_BRIDGE_MST_UNSPEC, IFLA_BRIDGE_MST_ENTRY, __IFLA_BRIDGE_MST_MAX, }; #define IFLA_BRIDGE_MST_MAX (__IFLA_BRIDGE_MST_MAX - 1) enum { IFLA_BRIDGE_MST_ENTRY_UNSPEC, IFLA_BRIDGE_MST_ENTRY_MSTI, IFLA_BRIDGE_MST_ENTRY_STATE, __IFLA_BRIDGE_MST_ENTRY_MAX, }; #define IFLA_BRIDGE_MST_ENTRY_MAX (__IFLA_BRIDGE_MST_ENTRY_MAX - 1) struct bridge_stp_xstats { __u64 transition_blk; __u64 transition_fwd; __u64 rx_bpdu; __u64 tx_bpdu; __u64 rx_tcn; __u64 tx_tcn; }; /* Bridge vlan RTM header */ struct br_vlan_msg { __u8 family; __u8 reserved1; __u16 reserved2; __u32 ifindex; }; enum { BRIDGE_VLANDB_DUMP_UNSPEC, BRIDGE_VLANDB_DUMP_FLAGS, __BRIDGE_VLANDB_DUMP_MAX, }; #define BRIDGE_VLANDB_DUMP_MAX (__BRIDGE_VLANDB_DUMP_MAX - 1) /* flags used in BRIDGE_VLANDB_DUMP_FLAGS attribute to affect dumps */ #define BRIDGE_VLANDB_DUMPF_STATS (1 << 0) /* Include stats in the dump */ #define BRIDGE_VLANDB_DUMPF_GLOBAL (1 << 1) /* Dump global vlan options only */ /* Bridge vlan RTM attributes * [BRIDGE_VLANDB_ENTRY] = { * [BRIDGE_VLANDB_ENTRY_INFO] * ... * } * [BRIDGE_VLANDB_GLOBAL_OPTIONS] = { * [BRIDGE_VLANDB_GOPTS_ID] * ... * } */ enum { BRIDGE_VLANDB_UNSPEC, BRIDGE_VLANDB_ENTRY, BRIDGE_VLANDB_GLOBAL_OPTIONS, __BRIDGE_VLANDB_MAX, }; #define BRIDGE_VLANDB_MAX (__BRIDGE_VLANDB_MAX - 1) enum { BRIDGE_VLANDB_ENTRY_UNSPEC, BRIDGE_VLANDB_ENTRY_INFO, BRIDGE_VLANDB_ENTRY_RANGE, BRIDGE_VLANDB_ENTRY_STATE, BRIDGE_VLANDB_ENTRY_TUNNEL_INFO, BRIDGE_VLANDB_ENTRY_STATS, BRIDGE_VLANDB_ENTRY_MCAST_ROUTER, BRIDGE_VLANDB_ENTRY_MCAST_N_GROUPS, BRIDGE_VLANDB_ENTRY_MCAST_MAX_GROUPS, BRIDGE_VLANDB_ENTRY_NEIGH_SUPPRESS, __BRIDGE_VLANDB_ENTRY_MAX, }; #define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1) /* [BRIDGE_VLANDB_ENTRY] = { * [BRIDGE_VLANDB_ENTRY_TUNNEL_INFO] = { * [BRIDGE_VLANDB_TINFO_ID] * ... * } * } */ enum { BRIDGE_VLANDB_TINFO_UNSPEC, BRIDGE_VLANDB_TINFO_ID, BRIDGE_VLANDB_TINFO_CMD, __BRIDGE_VLANDB_TINFO_MAX, }; #define BRIDGE_VLANDB_TINFO_MAX (__BRIDGE_VLANDB_TINFO_MAX - 1) /* [BRIDGE_VLANDB_ENTRY] = { * [BRIDGE_VLANDB_ENTRY_STATS] = { * [BRIDGE_VLANDB_STATS_RX_BYTES] * ... * } * ... * } */ enum { BRIDGE_VLANDB_STATS_UNSPEC, BRIDGE_VLANDB_STATS_RX_BYTES, BRIDGE_VLANDB_STATS_RX_PACKETS, BRIDGE_VLANDB_STATS_TX_BYTES, BRIDGE_VLANDB_STATS_TX_PACKETS, BRIDGE_VLANDB_STATS_PAD, __BRIDGE_VLANDB_STATS_MAX, }; #define BRIDGE_VLANDB_STATS_MAX (__BRIDGE_VLANDB_STATS_MAX - 1) enum { BRIDGE_VLANDB_GOPTS_UNSPEC, BRIDGE_VLANDB_GOPTS_ID, BRIDGE_VLANDB_GOPTS_RANGE, BRIDGE_VLANDB_GOPTS_MCAST_SNOOPING, BRIDGE_VLANDB_GOPTS_MCAST_IGMP_VERSION, BRIDGE_VLANDB_GOPTS_MCAST_MLD_VERSION, BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_CNT, BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_CNT, BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_INTVL, BRIDGE_VLANDB_GOPTS_PAD, BRIDGE_VLANDB_GOPTS_MCAST_MEMBERSHIP_INTVL, BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_INTVL, BRIDGE_VLANDB_GOPTS_MCAST_QUERY_INTVL, BRIDGE_VLANDB_GOPTS_MCAST_QUERY_RESPONSE_INTVL, BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_INTVL, BRIDGE_VLANDB_GOPTS_MCAST_QUERIER, BRIDGE_VLANDB_GOPTS_MCAST_ROUTER_PORTS, BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_STATE, BRIDGE_VLANDB_GOPTS_MSTI, __BRIDGE_VLANDB_GOPTS_MAX }; #define BRIDGE_VLANDB_GOPTS_MAX (__BRIDGE_VLANDB_GOPTS_MAX - 1) /* Bridge multicast database attributes * [MDBA_MDB] = { * [MDBA_MDB_ENTRY] = { * [MDBA_MDB_ENTRY_INFO] { * struct br_mdb_entry * [MDBA_MDB_EATTR attributes] * } * } * } * [MDBA_ROUTER] = { * [MDBA_ROUTER_PORT] = { * u32 ifindex * [MDBA_ROUTER_PATTR attributes] * } * } */ enum { MDBA_UNSPEC, MDBA_MDB, MDBA_ROUTER, __MDBA_MAX, }; #define MDBA_MAX (__MDBA_MAX - 1) enum { MDBA_MDB_UNSPEC, MDBA_MDB_ENTRY, __MDBA_MDB_MAX, }; #define MDBA_MDB_MAX (__MDBA_MDB_MAX - 1) enum { MDBA_MDB_ENTRY_UNSPEC, MDBA_MDB_ENTRY_INFO, __MDBA_MDB_ENTRY_MAX, }; #define MDBA_MDB_ENTRY_MAX (__MDBA_MDB_ENTRY_MAX - 1) /* per mdb entry additional attributes */ enum { MDBA_MDB_EATTR_UNSPEC, MDBA_MDB_EATTR_TIMER, MDBA_MDB_EATTR_SRC_LIST, MDBA_MDB_EATTR_GROUP_MODE, MDBA_MDB_EATTR_SOURCE, MDBA_MDB_EATTR_RTPROT, MDBA_MDB_EATTR_DST, MDBA_MDB_EATTR_DST_PORT, MDBA_MDB_EATTR_VNI, MDBA_MDB_EATTR_IFINDEX, MDBA_MDB_EATTR_SRC_VNI, __MDBA_MDB_EATTR_MAX }; #define MDBA_MDB_EATTR_MAX (__MDBA_MDB_EATTR_MAX - 1) /* per mdb entry source */ enum { MDBA_MDB_SRCLIST_UNSPEC, MDBA_MDB_SRCLIST_ENTRY, __MDBA_MDB_SRCLIST_MAX }; #define MDBA_MDB_SRCLIST_MAX (__MDBA_MDB_SRCLIST_MAX - 1) /* per mdb entry per source attributes * these are embedded in MDBA_MDB_SRCLIST_ENTRY */ enum { MDBA_MDB_SRCATTR_UNSPEC, MDBA_MDB_SRCATTR_ADDRESS, MDBA_MDB_SRCATTR_TIMER, __MDBA_MDB_SRCATTR_MAX }; #define MDBA_MDB_SRCATTR_MAX (__MDBA_MDB_SRCATTR_MAX - 1) /* multicast router types */ enum { MDB_RTR_TYPE_DISABLED, MDB_RTR_TYPE_TEMP_QUERY, MDB_RTR_TYPE_PERM, MDB_RTR_TYPE_TEMP }; enum { MDBA_ROUTER_UNSPEC, MDBA_ROUTER_PORT, __MDBA_ROUTER_MAX, }; #define MDBA_ROUTER_MAX (__MDBA_ROUTER_MAX - 1) /* router port attributes */ enum { MDBA_ROUTER_PATTR_UNSPEC, MDBA_ROUTER_PATTR_TIMER, MDBA_ROUTER_PATTR_TYPE, MDBA_ROUTER_PATTR_INET_TIMER, MDBA_ROUTER_PATTR_INET6_TIMER, MDBA_ROUTER_PATTR_VID, __MDBA_ROUTER_PATTR_MAX }; #define MDBA_ROUTER_PATTR_MAX (__MDBA_ROUTER_PATTR_MAX - 1) struct br_port_msg { __u8 family; __u32 ifindex; }; struct br_mdb_entry { __u32 ifindex; #define MDB_TEMPORARY 0 #define MDB_PERMANENT 1 __u8 state; #define MDB_FLAGS_OFFLOAD (1 << 0) #define MDB_FLAGS_FAST_LEAVE (1 << 1) #define MDB_FLAGS_STAR_EXCL (1 << 2) #define MDB_FLAGS_BLOCKED (1 << 3) #define MDB_FLAGS_OFFLOAD_FAILED (1 << 4) __u8 flags; __u16 vid; struct { union { __be32 ip4; struct in6_addr ip6; unsigned char mac_addr[ETH_ALEN]; } u; __be16 proto; } addr; }; enum { MDBA_SET_ENTRY_UNSPEC, MDBA_SET_ENTRY, MDBA_SET_ENTRY_ATTRS, __MDBA_SET_ENTRY_MAX, }; #define MDBA_SET_ENTRY_MAX (__MDBA_SET_ENTRY_MAX - 1) /* [MDBA_GET_ENTRY] = { * struct br_mdb_entry * [MDBA_GET_ENTRY_ATTRS] = { * [MDBE_ATTR_SOURCE] * struct in_addr / struct in6_addr * [MDBE_ATTR_SRC_VNI] * u32 * } * } */ enum { MDBA_GET_ENTRY_UNSPEC, MDBA_GET_ENTRY, MDBA_GET_ENTRY_ATTRS, __MDBA_GET_ENTRY_MAX, }; #define MDBA_GET_ENTRY_MAX (__MDBA_GET_ENTRY_MAX - 1) /* [MDBA_SET_ENTRY_ATTRS] = { * [MDBE_ATTR_xxx] * ... * } */ enum { MDBE_ATTR_UNSPEC, MDBE_ATTR_SOURCE, MDBE_ATTR_SRC_LIST, MDBE_ATTR_GROUP_MODE, MDBE_ATTR_RTPROT, MDBE_ATTR_DST, MDBE_ATTR_DST_PORT, MDBE_ATTR_VNI, MDBE_ATTR_IFINDEX, MDBE_ATTR_SRC_VNI, MDBE_ATTR_STATE_MASK, __MDBE_ATTR_MAX, }; #define MDBE_ATTR_MAX (__MDBE_ATTR_MAX - 1) /* per mdb entry source */ enum { MDBE_SRC_LIST_UNSPEC, MDBE_SRC_LIST_ENTRY, __MDBE_SRC_LIST_MAX, }; #define MDBE_SRC_LIST_MAX (__MDBE_SRC_LIST_MAX - 1) /* per mdb entry per source attributes * these are embedded in MDBE_SRC_LIST_ENTRY */ enum { MDBE_SRCATTR_UNSPEC, MDBE_SRCATTR_ADDRESS, __MDBE_SRCATTR_MAX, }; #define MDBE_SRCATTR_MAX (__MDBE_SRCATTR_MAX - 1) /* Embedded inside LINK_XSTATS_TYPE_BRIDGE */ enum { BRIDGE_XSTATS_UNSPEC, BRIDGE_XSTATS_VLAN, BRIDGE_XSTATS_MCAST, BRIDGE_XSTATS_PAD, BRIDGE_XSTATS_STP, __BRIDGE_XSTATS_MAX }; #define BRIDGE_XSTATS_MAX (__BRIDGE_XSTATS_MAX - 1) enum { BR_MCAST_DIR_RX, BR_MCAST_DIR_TX, BR_MCAST_DIR_SIZE }; /* IGMP/MLD statistics */ struct br_mcast_stats { __u64 igmp_v1queries[BR_MCAST_DIR_SIZE]; __u64 igmp_v2queries[BR_MCAST_DIR_SIZE]; __u64 igmp_v3queries[BR_MCAST_DIR_SIZE]; __u64 igmp_leaves[BR_MCAST_DIR_SIZE]; __u64 igmp_v1reports[BR_MCAST_DIR_SIZE]; __u64 igmp_v2reports[BR_MCAST_DIR_SIZE]; __u64 igmp_v3reports[BR_MCAST_DIR_SIZE]; __u64 igmp_parse_errors; __u64 mld_v1queries[BR_MCAST_DIR_SIZE]; __u64 mld_v2queries[BR_MCAST_DIR_SIZE]; __u64 mld_leaves[BR_MCAST_DIR_SIZE]; __u64 mld_v1reports[BR_MCAST_DIR_SIZE]; __u64 mld_v2reports[BR_MCAST_DIR_SIZE]; __u64 mld_parse_errors; __u64 mcast_bytes[BR_MCAST_DIR_SIZE]; __u64 mcast_packets[BR_MCAST_DIR_SIZE]; }; /* bridge boolean options * BR_BOOLOPT_NO_LL_LEARN - disable learning from link-local packets * BR_BOOLOPT_MCAST_VLAN_SNOOPING - control vlan multicast snooping * * IMPORTANT: if adding a new option do not forget to handle * it in br_boolopt_toggle/get and bridge sysfs */ enum br_boolopt_id { BR_BOOLOPT_NO_LL_LEARN, BR_BOOLOPT_MCAST_VLAN_SNOOPING, BR_BOOLOPT_MST_ENABLE, BR_BOOLOPT_MDB_OFFLOAD_FAIL_NOTIFICATION, BR_BOOLOPT_MAX }; /* struct br_boolopt_multi - change multiple bridge boolean options * * @optval: new option values (bit per option) * @optmask: options to change (bit per option) */ struct br_boolopt_multi { __u32 optval; __u32 optmask; }; enum { BRIDGE_QUERIER_UNSPEC, BRIDGE_QUERIER_IP_ADDRESS, BRIDGE_QUERIER_IP_PORT, BRIDGE_QUERIER_IP_OTHER_TIMER, BRIDGE_QUERIER_PAD, BRIDGE_QUERIER_IPV6_ADDRESS, BRIDGE_QUERIER_IPV6_PORT, BRIDGE_QUERIER_IPV6_OTHER_TIMER, __BRIDGE_QUERIER_MAX }; #define BRIDGE_QUERIER_MAX (__BRIDGE_QUERIER_MAX - 1) #endif /* _LINUX_IF_BRIDGE_H */
SIMPAN PERUBAHAN