SILENT KILLERPanel

Current Path: > > usr > include > linux


Operation   : Linux premium88.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
Software     : Apache
Server IP    : 185.61.154.216 | Your IP: 216.73.216.44
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //usr/include/linux

NameTypeSizeLast ModifiedActions
android Directory - -
byteorder Directory - -
caif Directory - -
can Directory - -
cifs Directory - -
dvb Directory - -
genwqe Directory - -
hdlc Directory - -
hsi Directory - -
iio Directory - -
isdn Directory - -
mmc Directory - -
netfilter Directory - -
netfilter_arp Directory - -
netfilter_bridge Directory - -
netfilter_ipv4 Directory - -
netfilter_ipv6 Directory - -
nfsd Directory - -
raid Directory - -
sched Directory - -
spi Directory - -
sunrpc Directory - -
tc_act Directory - -
tc_ematch Directory - -
usb Directory - -
wimax Directory - -
a.out.h File 6892 bytes August 20 2025 15:07:53.
acct.h File 3733 bytes August 20 2025 15:07:51.
adb.h File 1140 bytes August 20 2025 15:07:51.
adfs_fs.h File 936 bytes August 20 2025 15:07:53.
affs_hardblocks.h File 1544 bytes August 20 2025 15:07:50.
agpgart.h File 3940 bytes August 20 2025 15:07:51.
aio_abi.h File 3417 bytes August 20 2025 15:07:52.
am437x-vpfe.h File 3681 bytes August 20 2025 15:07:53.
apm_bios.h File 3683 bytes August 20 2025 15:07:53.
arcfb.h File 213 bytes August 20 2025 15:07:52.
arm_sdei.h File 2751 bytes August 20 2025 15:07:52.
aspeed-lpc-ctrl.h File 1780 bytes August 20 2025 15:07:50.
atalk.h File 1023 bytes August 20 2025 15:07:50.
atm.h File 7888 bytes August 20 2025 15:07:52.
atm_eni.h File 648 bytes August 20 2025 15:07:50.
atm_he.h File 406 bytes August 20 2025 15:07:51.
atm_idt77105.h File 955 bytes August 20 2025 15:07:51.
atm_nicstar.h File 1278 bytes August 20 2025 15:07:50.
atm_tcp.h File 1622 bytes August 20 2025 15:07:52.
atm_zatm.h File 1540 bytes August 20 2025 15:07:53.
atmapi.h File 952 bytes August 20 2025 15:07:52.
atmarp.h File 1296 bytes August 20 2025 15:07:51.
atmbr2684.h File 3271 bytes August 20 2025 15:07:51.
atmclip.h File 576 bytes August 20 2025 15:07:50.
atmdev.h File 7677 bytes August 20 2025 15:07:50.
atmioc.h File 1646 bytes August 20 2025 15:07:51.
atmlec.h File 2381 bytes August 20 2025 15:07:50.
atmmpc.h File 4226 bytes August 20 2025 15:07:50.
atmppp.h File 639 bytes August 20 2025 15:07:52.
atmsap.h File 4970 bytes August 20 2025 15:07:50.
atmsvc.h File 1853 bytes August 20 2025 15:07:50.
audit.h File 20394 bytes August 20 2025 15:07:51.
auto_dev-ioctl.h File 4986 bytes August 20 2025 15:07:50.
auto_fs.h File 6428 bytes August 20 2025 15:07:52.
auto_fs4.h File 451 bytes August 20 2025 15:07:52.
auxvec.h File 1597 bytes August 20 2025 15:07:51.
ax25.h File 2824 bytes August 20 2025 15:07:53.
b1lli.h File 1717 bytes August 20 2025 15:07:51.
batadv_packet.h File 20495 bytes August 20 2025 15:07:50.
batman_adv.h File 11977 bytes August 20 2025 15:07:52.
baycom.h File 883 bytes August 20 2025 15:07:50.
bcache.h File 8366 bytes August 20 2025 15:07:50.
bcm933xx_hcs.h File 419 bytes August 20 2025 15:07:50.
bfs_fs.h File 1893 bytes August 20 2025 15:07:52.
binfmts.h File 628 bytes August 20 2025 15:07:52.
blkpg.h File 904 bytes August 20 2025 15:07:53.
blktrace_api.h File 4701 bytes August 20 2025 15:07:50.
blkzoned.h File 6608 bytes August 20 2025 15:07:50.
bpf.h File 228660 bytes August 20 2025 15:07:51.
bpf_common.h File 1367 bytes August 20 2025 15:07:52.
bpf_perf_event.h File 529 bytes August 20 2025 15:07:52.
bpfilter.h File 465 bytes August 20 2025 15:07:50.
bpqether.h File 981 bytes August 20 2025 15:07:51.
bsg.h File 2494 bytes August 20 2025 15:07:52.
bt-bmc.h File 572 bytes August 20 2025 15:07:51.
btf.h File 4796 bytes August 20 2025 15:07:50.
btrfs.h File 28913 bytes August 20 2025 15:07:50.
btrfs_tree.h File 25285 bytes August 20 2025 15:07:52.
can.h File 7881 bytes August 20 2025 15:07:51.
capability.h File 13521 bytes August 20 2025 15:07:50.
capi.h File 3124 bytes August 20 2025 15:07:53.
cciss_defs.h File 3281 bytes August 20 2025 15:07:52.
cciss_ioctl.h File 2761 bytes August 20 2025 15:07:52.
cdrom.h File 28859 bytes August 20 2025 15:07:52.
cec-funcs.h File 53901 bytes August 20 2025 15:07:52.
cec.h File 37691 bytes August 20 2025 15:07:52.
cfm_bridge.h File 1456 bytes August 20 2025 15:07:51.
cgroupstats.h File 2219 bytes August 20 2025 15:07:50.
chio.h File 5344 bytes August 20 2025 15:07:51.
close_range.h File 377 bytes August 20 2025 15:07:52.
cm4000_cs.h File 1806 bytes August 20 2025 15:07:52.
cn_proc.h File 3456 bytes August 20 2025 15:07:51.
coda.h File 17505 bytes August 20 2025 15:07:52.
coda_psdev.h File 783 bytes August 20 2025 15:07:51.
coff.h File 12476 bytes August 20 2025 15:07:50.
connector.h File 2253 bytes August 20 2025 15:07:52.
const.h File 788 bytes August 20 2025 15:07:52.
coresight-stm.h File 674 bytes August 20 2025 15:07:52.
cramfs_fs.h File 3555 bytes August 20 2025 15:07:52.
cryptouser.h File 3392 bytes August 20 2025 15:07:50.
cuda.h File 905 bytes August 20 2025 15:07:51.
cyclades.h File 17108 bytes August 20 2025 15:07:51.
cycx_cfm.h File 2990 bytes August 20 2025 15:07:51.
dcbnl.h File 25238 bytes August 20 2025 15:07:51.
dccp.h File 6436 bytes August 20 2025 15:07:50.
devlink.h File 21556 bytes August 20 2025 15:07:51.
dlm.h File 2553 bytes August 20 2025 15:07:51.
dlm_device.h File 2543 bytes August 20 2025 15:07:52.
dlm_netlink.h File 1159 bytes August 20 2025 15:07:52.
dlm_plock.h File 894 bytes August 20 2025 15:07:53.
dlmconstants.h File 5080 bytes August 20 2025 15:07:52.
dm-ioctl.h File 11400 bytes August 20 2025 15:07:52.
dm-log-userspace.h File 15191 bytes August 20 2025 15:07:51.
dma-buf.h File 5247 bytes August 20 2025 15:07:50.
dn.h File 4642 bytes August 20 2025 15:07:53.
dqblk_xfs.h File 9245 bytes August 20 2025 15:07:50.
edd.h File 5604 bytes August 20 2025 15:07:51.
efs_fs_sb.h File 2227 bytes August 20 2025 15:07:52.
elf-em.h File 2187 bytes August 20 2025 15:07:51.
elf-fdpic.h File 1124 bytes August 20 2025 15:07:51.
elf.h File 13471 bytes August 20 2025 15:07:51.
elfcore.h File 2995 bytes August 20 2025 15:07:49.
errno.h File 23 bytes August 20 2025 15:07:50.
errqueue.h File 1477 bytes August 20 2025 15:07:51.
erspan.h File 1059 bytes August 20 2025 15:07:53.
ethtool.h File 83855 bytes August 20 2025 15:07:52.
ethtool_netlink.h File 22826 bytes August 20 2025 15:07:52.
eventpoll.h File 2734 bytes August 20 2025 15:07:52.
fadvise.h File 842 bytes August 20 2025 15:07:52.
falloc.h File 3584 bytes August 20 2025 15:07:51.
fanotify.h File 5341 bytes August 20 2025 15:07:50.
fb.h File 16477 bytes August 20 2025 15:07:51.
fcntl.h File 4174 bytes August 20 2025 15:07:53.
fd.h File 11672 bytes August 20 2025 15:07:51.
fdreg.h File 5420 bytes August 20 2025 15:07:51.
fib_rules.h File 2036 bytes August 20 2025 15:07:50.
fiemap.h File 2775 bytes August 20 2025 15:07:51.
filter.h File 2216 bytes August 20 2025 15:07:50.
firewire-cdev.h File 43886 bytes August 20 2025 15:07:50.
firewire-constants.h File 3231 bytes August 20 2025 15:07:50.
flat.h File 2148 bytes August 20 2025 15:07:50.
fou.h File 694 bytes August 20 2025 15:07:52.
fpga-dfl.h File 8728 bytes August 20 2025 15:07:51.
fs.h File 13424 bytes August 20 2025 15:07:52.
fsl_hypervisor.h File 7301 bytes August 20 2025 15:07:52.
fsmap.h File 4393 bytes August 20 2025 15:07:51.
fuse.h File 23473 bytes August 20 2025 15:07:52.
futex.h File 4993 bytes August 20 2025 15:07:53.
gameport.h File 897 bytes August 20 2025 15:07:52.
gen_stats.h File 1526 bytes August 20 2025 15:07:52.
genetlink.h File 2175 bytes August 20 2025 15:07:51.
gfs2_ondisk.h File 14743 bytes August 20 2025 15:07:51.
gigaset_dev.h File 1442 bytes August 20 2025 15:07:50.
gpio.h File 6751 bytes August 20 2025 15:07:51.
gsmmux.h File 1041 bytes August 20 2025 15:07:50.
gtp.h File 681 bytes August 20 2025 15:07:50.
hash_info.h File 921 bytes August 20 2025 15:07:50.
hdlc.h File 637 bytes August 20 2025 15:07:52.
hdlcdrv.h File 2908 bytes August 20 2025 15:07:49.
hdreg.h File 22703 bytes August 20 2025 15:07:51.
hid.h File 1901 bytes August 20 2025 15:07:52.
hiddev.h File 6345 bytes August 20 2025 15:07:52.
hidraw.h File 1993 bytes August 20 2025 15:07:51.
hpet.h File 743 bytes August 20 2025 15:07:50.
hsr_netlink.h File 1081 bytes August 20 2025 15:07:53.
hw_breakpoint.h File 742 bytes August 20 2025 15:07:52.
hyperv.h File 11152 bytes August 20 2025 15:07:51.
hysdn_if.h File 1382 bytes August 20 2025 15:07:52.
i2c-dev.h File 2612 bytes August 20 2025 15:07:52.
i2c.h File 7132 bytes August 20 2025 15:07:52.
i2o-dev.h File 11555 bytes August 20 2025 15:07:51.
i8k.h File 1528 bytes August 20 2025 15:07:52.
icmp.h File 2975 bytes August 20 2025 15:07:52.
icmpv6.h File 4038 bytes August 20 2025 15:07:53.
idxd.h File 8417 bytes August 20 2025 15:07:50.
if.h File 10901 bytes August 20 2025 15:07:50.
if_addr.h File 1886 bytes August 20 2025 15:07:51.
if_addrlabel.h File 721 bytes August 20 2025 15:07:52.
if_alg.h File 946 bytes August 20 2025 15:07:51.
if_arcnet.h File 3717 bytes August 20 2025 15:07:52.
if_arp.h File 6577 bytes August 20 2025 15:07:51.
if_bonding.h File 5291 bytes August 20 2025 15:07:50.
if_bridge.h File 19514 bytes August 20 2025 15:07:52.
if_cablemodem.h File 986 bytes August 20 2025 15:07:51.
if_eql.h File 1349 bytes August 20 2025 15:07:50.
if_ether.h File 8248 bytes August 20 2025 15:07:50.
if_fc.h File 1738 bytes August 20 2025 15:07:50.
if_fddi.h File 3748 bytes August 20 2025 15:07:52.
if_frad.h File 3019 bytes August 20 2025 15:07:50.
if_hippi.h File 4235 bytes August 20 2025 15:07:50.
if_infiniband.h File 1245 bytes August 20 2025 15:07:51.
if_link.h File 31005 bytes August 20 2025 15:07:52.
if_ltalk.h File 210 bytes August 20 2025 15:07:52.
if_macsec.h File 5832 bytes August 20 2025 15:07:50.
if_packet.h File 7919 bytes August 20 2025 15:07:51.
if_phonet.h File 424 bytes August 20 2025 15:07:50.
if_plip.h File 660 bytes August 20 2025 15:07:50.
if_ppp.h File 29 bytes August 20 2025 15:07:52.
if_pppol2tp.h File 3292 bytes August 20 2025 15:07:51.
if_pppox.h File 4879 bytes August 20 2025 15:07:50.
if_slip.h File 872 bytes August 20 2025 15:07:50.
if_team.h File 2600 bytes August 20 2025 15:07:50.
if_tun.h File 4098 bytes August 20 2025 15:07:50.
if_tunnel.h File 4512 bytes August 20 2025 15:07:51.
if_vlan.h File 1831 bytes August 20 2025 15:07:50.
if_x25.h File 881 bytes August 20 2025 15:07:51.
if_xdp.h File 3011 bytes August 20 2025 15:07:53.
ife.h File 351 bytes August 20 2025 15:07:50.
igmp.h File 3064 bytes August 20 2025 15:07:51.
ila.h File 1246 bytes August 20 2025 15:07:51.
in.h File 10014 bytes August 20 2025 15:07:51.
in6.h File 7438 bytes August 20 2025 15:07:52.
in_route.h File 936 bytes August 20 2025 15:07:53.
inet_diag.h File 4672 bytes August 20 2025 15:07:50.
inotify.h File 3292 bytes August 20 2025 15:07:52.
input-event-codes.h File 28606 bytes August 20 2025 15:07:51.
input.h File 15985 bytes August 20 2025 15:07:52.
io_uring.h File 6207 bytes August 20 2025 15:07:51.
ioctl.h File 163 bytes August 20 2025 15:07:50.
iommu.h File 4904 bytes August 20 2025 15:07:51.
ip.h File 4728 bytes August 20 2025 15:07:53.
ip6_tunnel.h File 1953 bytes August 20 2025 15:07:50.
ip_vs.h File 13631 bytes August 20 2025 15:07:52.
ipc.h File 2101 bytes August 20 2025 15:07:52.
ipmi.h File 15442 bytes August 20 2025 15:07:51.
ipmi_bmc.h File 464 bytes August 20 2025 15:07:52.
ipmi_msgdefs.h File 3430 bytes August 20 2025 15:07:50.
ipmi_ssif_bmc.h File 441 bytes August 20 2025 15:07:50.
ipsec.h File 947 bytes August 20 2025 15:07:52.
ipv6.h File 3967 bytes August 20 2025 15:07:50.
ipv6_route.h File 1908 bytes August 20 2025 15:07:50.
ipx.h File 2347 bytes August 20 2025 15:07:51.
irqnr.h File 104 bytes August 20 2025 15:07:50.
isdn.h File 5774 bytes August 20 2025 15:07:50.
isdn_divertif.h File 1200 bytes August 20 2025 15:07:51.
isdn_ppp.h File 1923 bytes August 20 2025 15:07:52.
isdnif.h File 2370 bytes August 20 2025 15:07:51.
iso_fs.h File 6485 bytes August 20 2025 15:07:51.
isst_if.h File 5384 bytes August 20 2025 15:07:51.
ivtv.h File 3022 bytes August 20 2025 15:07:52.
ivtvfb.h File 1207 bytes August 20 2025 15:07:52.
jffs2.h File 7018 bytes August 20 2025 15:07:51.
joystick.h File 3434 bytes August 20 2025 15:07:52.
kcm.h File 822 bytes August 20 2025 15:07:50.
kcmp.h File 522 bytes August 20 2025 15:07:52.
kcov.h File 1099 bytes August 20 2025 15:07:50.
kd.h File 6253 bytes August 20 2025 15:07:50.
kdev_t.h File 383 bytes August 20 2025 15:07:51.
kernel-page-flags.h File 900 bytes August 20 2025 15:07:50.
kernel.h File 438 bytes August 20 2025 15:07:52.
kernelcapi.h File 1019 bytes August 20 2025 15:07:53.
kexec.h File 1835 bytes August 20 2025 15:07:51.
keyboard.h File 12783 bytes August 20 2025 15:07:50.
keyctl.h File 3500 bytes August 20 2025 15:07:53.
kfd_ioctl.h File 28814 bytes August 20 2025 15:07:51.
kfd_sysfs.h File 4350 bytes August 20 2025 15:07:50.
kvm.h File 61561 bytes August 20 2025 15:07:53.
kvm_para.h File 1001 bytes August 20 2025 15:07:50.
l2tp.h File 5591 bytes August 20 2025 15:07:51.
libc-compat.h File 8289 bytes August 20 2025 15:07:52.
lightnvm.h File 5042 bytes August 20 2025 15:07:51.
limits.h File 937 bytes August 20 2025 15:07:50.
lirc.h File 7813 bytes August 20 2025 15:07:53.
llc.h File 3164 bytes August 20 2025 15:07:52.
loop.h File 3497 bytes August 20 2025 15:07:51.
lp.h File 4190 bytes August 20 2025 15:07:52.
lwtunnel.h File 2179 bytes August 20 2025 15:07:50.
magic.h File 3531 bytes August 20 2025 15:07:53.
major.h File 4713 bytes August 20 2025 15:07:50.
map_to_7segment.h File 7251 bytes August 20 2025 15:07:50.
matroxfb.h File 1464 bytes August 20 2025 15:07:52.
max2175.h File 1035 bytes August 20 2025 15:07:52.
mdio.h File 17272 bytes August 20 2025 15:07:50.
media-bus-format.h File 6411 bytes August 20 2025 15:07:51.
media.h File 11382 bytes August 20 2025 15:07:51.
mei.h File 3475 bytes August 20 2025 15:07:52.
membarrier.h File 7899 bytes August 20 2025 15:07:50.
memfd.h File 1324 bytes August 20 2025 15:07:49.
mempolicy.h File 2231 bytes August 20 2025 15:07:52.
meye.h File 2529 bytes August 20 2025 15:07:50.
mic_common.h File 6519 bytes August 20 2025 15:07:51.
mic_ioctl.h File 2252 bytes August 20 2025 15:07:51.
mii.h File 9496 bytes August 20 2025 15:07:51.
minix_fs.h File 2122 bytes August 20 2025 15:07:50.
mman.h File 1385 bytes August 20 2025 15:07:51.
mmtimer.h File 2117 bytes August 20 2025 15:07:50.
module.h File 255 bytes August 20 2025 15:07:49.
mount.h File 4546 bytes August 20 2025 15:07:50.
mpls.h File 2302 bytes August 20 2025 15:07:51.
mpls_iptunnel.h File 761 bytes August 20 2025 15:07:52.
mptcp.h File 5608 bytes August 20 2025 15:07:52.
mqueue.h File 2201 bytes August 20 2025 15:07:52.
mroute.h File 5427 bytes August 20 2025 15:07:53.
mroute6.h File 4577 bytes August 20 2025 15:07:50.
mrp_bridge.h File 1708 bytes August 20 2025 15:07:50.
msdos_fs.h File 6963 bytes August 20 2025 15:07:51.
msg.h File 3374 bytes August 20 2025 15:07:52.
mtio.h File 8175 bytes August 20 2025 15:07:52.
n_r3964.h File 2410 bytes August 20 2025 15:07:51.
nbd-netlink.h File 2408 bytes August 20 2025 15:07:51.
nbd.h File 3024 bytes August 20 2025 15:07:52.
ncsi.h File 3880 bytes August 20 2025 15:07:53.
ndctl.h File 6866 bytes August 20 2025 15:07:52.
neighbour.h File 5138 bytes August 20 2025 15:07:51.
net.h File 2085 bytes August 20 2025 15:07:52.
net_dropmon.h File 2922 bytes August 20 2025 15:07:52.
net_namespace.h File 715 bytes August 20 2025 15:07:51.
net_tstamp.h File 5806 bytes August 20 2025 15:07:49.
netconf.h File 614 bytes August 20 2025 15:07:51.
netdevice.h File 2253 bytes August 20 2025 15:07:51.
netfilter.h File 1820 bytes August 20 2025 15:07:52.
netfilter_arp.h File 445 bytes August 20 2025 15:07:50.
netfilter_bridge.h File 1168 bytes August 20 2025 15:07:52.
netfilter_decnet.h File 1979 bytes August 20 2025 15:07:50.
netfilter_ipv4.h File 2169 bytes August 20 2025 15:07:50.
netfilter_ipv6.h File 2189 bytes August 20 2025 15:07:52.
netlink.h File 11495 bytes August 20 2025 15:07:53.
netlink_diag.h File 1524 bytes August 20 2025 15:07:53.
netrom.h File 807 bytes August 20 2025 15:07:52.
nexthop.h File 1534 bytes August 20 2025 15:07:50.
nfc.h File 11209 bytes August 20 2025 15:07:50.
nfs.h File 4500 bytes August 20 2025 15:07:50.
nfs2.h File 1468 bytes August 20 2025 15:07:51.
nfs3.h File 2453 bytes August 20 2025 15:07:51.
nfs4.h File 6599 bytes August 20 2025 15:07:50.
nfs4_mount.h File 1932 bytes August 20 2025 15:07:51.
nfs_fs.h File 1641 bytes August 20 2025 15:07:50.
nfs_idmap.h File 2243 bytes August 20 2025 15:07:51.
nfs_mount.h File 2142 bytes August 20 2025 15:07:52.
nfsacl.h File 718 bytes August 20 2025 15:07:50.
nilfs2_api.h File 7589 bytes August 20 2025 15:07:51.
nilfs2_ondisk.h File 18033 bytes August 20 2025 15:07:52.
nitro_enclaves.h File 13152 bytes August 20 2025 15:07:52.
nl80211.h File 335264 bytes August 20 2025 15:07:50.
nsfs.h File 639 bytes August 20 2025 15:07:51.
nubus.h File 8191 bytes August 20 2025 15:07:53.
nvme_ioctl.h File 2112 bytes August 20 2025 15:07:51.
nvram.h File 532 bytes August 20 2025 15:07:50.
omap3isp.h File 20853 bytes August 20 2025 15:07:50.
omapfb.h File 5918 bytes August 20 2025 15:07:51.
oom.h File 511 bytes August 20 2025 15:07:51.
openat2.h File 1289 bytes August 20 2025 15:07:49.
openvswitch.h File 40184 bytes August 20 2025 15:07:51.
packet_diag.h File 1672 bytes August 20 2025 15:07:50.
param.h File 141 bytes August 20 2025 15:07:52.
parport.h File 3644 bytes August 20 2025 15:07:52.
patchkey.h File 892 bytes August 20 2025 15:07:52.
pci.h File 1380 bytes August 20 2025 15:07:51.
pci_regs.h File 57827 bytes August 20 2025 15:07:50.
pcitest.h File 711 bytes August 20 2025 15:07:51.
perf_event.h File 40580 bytes August 20 2025 15:07:52.
personality.h File 2097 bytes August 20 2025 15:07:50.
pfkeyv2.h File 10569 bytes August 20 2025 15:07:52.
pfrut.h File 7987 bytes August 20 2025 15:07:52.
pg.h File 2394 bytes August 20 2025 15:07:51.
phantom.h File 1654 bytes August 20 2025 15:07:52.
phonet.h File 4677 bytes August 20 2025 15:07:52.
pkt_cls.h File 18511 bytes August 20 2025 15:07:53.
pkt_sched.h File 30296 bytes August 20 2025 15:07:52.
pktcdvd.h File 2687 bytes August 20 2025 15:07:51.
pmu.h File 5319 bytes August 20 2025 15:07:50.
poll.h File 22 bytes August 20 2025 15:07:52.
posix_acl.h File 1254 bytes August 20 2025 15:07:51.
posix_acl_xattr.h File 1115 bytes August 20 2025 15:07:53.
posix_types.h File 1098 bytes August 20 2025 15:07:50.
ppdev.h File 3211 bytes August 20 2025 15:07:51.
ppp-comp.h File 2527 bytes August 20 2025 15:07:50.
ppp-ioctl.h File 5475 bytes August 20 2025 15:07:51.
ppp_defs.h File 5107 bytes August 20 2025 15:07:51.
pps.h File 4734 bytes August 20 2025 15:07:52.
pr.h File 1073 bytes August 20 2025 15:07:51.
prctl.h File 8023 bytes August 20 2025 15:07:52.
psample.h File 2271 bytes August 20 2025 15:07:51.
psci.h File 4328 bytes August 20 2025 15:07:53.
psp-sev.h File 4586 bytes August 20 2025 15:07:51.
ptp_clock.h File 7456 bytes August 20 2025 15:07:50.
ptrace.h File 3674 bytes August 20 2025 15:07:52.
qemu_fw_cfg.h File 2469 bytes August 20 2025 15:07:53.
qnx4_fs.h File 2328 bytes August 20 2025 15:07:51.
qnxtypes.h File 624 bytes August 20 2025 15:07:52.
qrtr.h File 893 bytes August 20 2025 15:07:50.
quota.h File 6291 bytes August 20 2025 15:07:50.
radeonfb.h File 360 bytes August 20 2025 15:07:51.
random.h File 1370 bytes August 20 2025 15:07:52.
raw.h File 365 bytes August 20 2025 15:07:53.
rds.h File 9301 bytes August 20 2025 15:07:51.
reboot.h File 1343 bytes August 20 2025 15:07:52.
reiserfs_fs.h File 775 bytes August 20 2025 15:07:50.
reiserfs_xattr.h File 533 bytes August 20 2025 15:07:52.
resource.h File 2347 bytes August 20 2025 15:07:53.
rfkill.h File 6608 bytes August 20 2025 15:07:50.
rio_cm_cdev.h File 3248 bytes August 20 2025 15:07:53.
rio_mport_cdev.h File 9330 bytes August 20 2025 15:07:52.
romfs_fs.h File 1238 bytes August 20 2025 15:07:53.
rose.h File 2232 bytes August 20 2025 15:07:50.
route.h File 2332 bytes August 20 2025 15:07:52.
rpmsg.h File 544 bytes August 20 2025 15:07:53.
rseq.h File 4904 bytes August 20 2025 15:07:51.
rtc.h File 4009 bytes August 20 2025 15:07:50.
rtnetlink.h File 20201 bytes August 20 2025 15:07:51.
rxrpc.h File 5080 bytes August 20 2025 15:07:52.
scc.h File 4597 bytes August 20 2025 15:07:50.
sched.h File 2797 bytes August 20 2025 15:07:52.
scif_ioctl.h File 6382 bytes August 20 2025 15:07:50.
screen_info.h File 2479 bytes August 20 2025 15:07:52.
sctp.h File 35994 bytes August 20 2025 15:07:51.
sdla.h File 2839 bytes August 20 2025 15:07:52.
seccomp.h File 2257 bytes August 20 2025 15:07:53.
securebits.h File 2704 bytes August 20 2025 15:07:50.
sed-opal.h File 3275 bytes August 20 2025 15:07:50.
seg6.h File 1170 bytes August 20 2025 15:07:52.
seg6_genl.h File 589 bytes August 20 2025 15:07:51.
seg6_hmac.h File 423 bytes August 20 2025 15:07:52.
seg6_iptunnel.h File 927 bytes August 20 2025 15:07:51.
seg6_local.h File 2060 bytes August 20 2025 15:07:53.
selinux_netlink.h File 1195 bytes August 20 2025 15:07:53.
sem.h File 3043 bytes August 20 2025 15:07:50.
serial.h File 3866 bytes August 20 2025 15:07:52.
serial_core.h File 6245 bytes August 20 2025 15:07:52.
serial_reg.h File 15496 bytes August 20 2025 15:07:50.
serio.h File 2037 bytes August 20 2025 15:07:52.
sev-guest.h File 2303 bytes August 20 2025 15:07:52.
shm.h File 3785 bytes August 20 2025 15:07:52.
signal.h File 388 bytes August 20 2025 15:07:52.
signalfd.h File 1233 bytes August 20 2025 15:07:51.
smc.h File 8513 bytes August 20 2025 15:07:50.
smc_diag.h File 2728 bytes August 20 2025 15:07:50.
smiapp.h File 1058 bytes August 20 2025 15:07:52.
snmp.h File 13663 bytes August 20 2025 15:07:51.
sock_diag.h File 1301 bytes August 20 2025 15:07:50.
socket.h File 901 bytes August 20 2025 15:07:50.
sockios.h File 6106 bytes August 20 2025 15:07:52.
sonet.h File 2290 bytes August 20 2025 15:07:50.
sonypi.h File 5309 bytes August 20 2025 15:07:51.
sound.h File 1237 bytes August 20 2025 15:07:51.
soundcard.h File 46038 bytes August 20 2025 15:07:53.
stat.h File 6352 bytes August 20 2025 15:07:49.
stddef.h File 1532 bytes August 20 2025 15:07:51.
stm.h File 1275 bytes August 20 2025 15:07:52.
string.h File 238 bytes August 20 2025 15:07:50.
suspend_ioctls.h File 1431 bytes August 20 2025 15:07:51.
swab.h File 6921 bytes August 20 2025 15:07:52.
switchtec_ioctl.h File 5262 bytes August 20 2025 15:07:50.
sync_file.h File 2883 bytes August 20 2025 15:07:53.
synclink.h File 8985 bytes August 20 2025 15:07:52.
sysctl.h File 25842 bytes August 20 2025 15:07:51.
sysinfo.h File 1049 bytes August 20 2025 15:07:50.
target_core_user.h File 4633 bytes August 20 2025 15:07:53.
taskstats.h File 7180 bytes August 20 2025 15:07:53.
tcp.h File 9920 bytes August 20 2025 15:07:51.
tcp_metrics.h File 1549 bytes August 20 2025 15:07:52.
tdx-guest.h File 1305 bytes August 20 2025 15:07:52.
tee.h File 13165 bytes August 20 2025 15:07:52.
termios.h File 506 bytes August 20 2025 15:07:52.
thermal.h File 3309 bytes August 20 2025 15:07:50.
time.h File 1748 bytes August 20 2025 15:07:50.
time_types.h File 1175 bytes August 20 2025 15:07:53.
timerfd.h File 936 bytes August 20 2025 15:07:50.
times.h File 278 bytes August 20 2025 15:07:51.
timex.h File 6403 bytes August 20 2025 15:07:53.
tiocl.h File 1729 bytes August 20 2025 15:07:49.
tipc.h File 8825 bytes August 20 2025 15:07:51.
tipc_config.h File 14708 bytes August 20 2025 15:07:52.
tipc_netlink.h File 9395 bytes August 20 2025 15:07:52.
tipc_sockets_diag.h File 468 bytes August 20 2025 15:07:50.
tls.h File 4288 bytes August 20 2025 15:07:52.
toshiba.h File 1930 bytes August 20 2025 15:07:50.
tty.h File 1585 bytes August 20 2025 15:07:52.
tty_flags.h File 4527 bytes August 20 2025 15:07:52.
types.h File 1476 bytes August 20 2025 15:07:53.
udf_fs_i.h File 697 bytes August 20 2025 15:07:51.
udp.h File 1661 bytes August 20 2025 15:07:51.
uhid.h File 4648 bytes August 20 2025 15:07:51.
uinput.h File 9261 bytes August 20 2025 15:07:52.
uio.h File 732 bytes August 20 2025 15:07:50.
uleds.h File 798 bytes August 20 2025 15:07:50.
ultrasound.h File 4562 bytes August 20 2025 15:07:53.
un.h File 384 bytes August 20 2025 15:07:52.
unistd.h File 220 bytes August 20 2025 15:07:50.
unix_diag.h File 1253 bytes August 20 2025 15:07:51.
usbdevice_fs.h File 8317 bytes August 20 2025 15:07:52.
usbip.h File 640 bytes August 20 2025 15:07:50.
userfaultfd.h File 7774 bytes August 20 2025 15:07:52.
userio.h File 1516 bytes August 20 2025 15:07:52.
utime.h File 215 bytes August 20 2025 15:07:50.
utsname.h File 669 bytes August 20 2025 15:07:53.
uuid.h File 1356 bytes August 20 2025 15:07:50.
uvcvideo.h File 2635 bytes August 20 2025 15:07:51.
v4l2-common.h File 4177 bytes August 20 2025 15:07:50.
v4l2-controls.h File 51777 bytes August 20 2025 15:07:50.
v4l2-dv-timings.h File 31562 bytes August 20 2025 15:07:52.
v4l2-mediabus.h File 5101 bytes August 20 2025 15:07:52.
v4l2-subdev.h File 6096 bytes August 20 2025 15:07:51.
vbox_err.h File 7257 bytes August 20 2025 15:07:52.
vbox_vmmdev_types.h File 8356 bytes August 20 2025 15:07:51.
vboxguest.h File 8729 bytes August 20 2025 15:07:53.
vdpa.h File 1421 bytes August 20 2025 15:07:51.
version.h File 430 bytes August 20 2025 15:09:08.
veth.h File 224 bytes August 20 2025 15:07:53.
vfio.h File 52223 bytes August 20 2025 15:07:51.
vfio_ccw.h File 1317 bytes August 20 2025 15:07:50.
vfio_zdev.h File 2542 bytes August 20 2025 15:07:50.
vhost.h File 6418 bytes August 20 2025 15:07:51.
vhost_types.h File 3997 bytes August 20 2025 15:07:51.
videodev2.h File 90741 bytes August 20 2025 15:07:50.
virtio_9p.h File 2041 bytes August 20 2025 15:07:50.
virtio_balloon.h File 5274 bytes August 20 2025 15:07:50.
virtio_blk.h File 6797 bytes August 20 2025 15:07:52.
virtio_bt.h File 772 bytes August 20 2025 15:07:51.
virtio_config.h File 4005 bytes August 20 2025 15:07:52.
virtio_console.h File 3136 bytes August 20 2025 15:07:50.
virtio_crypto.h File 13874 bytes August 20 2025 15:07:51.
virtio_fs.h File 572 bytes August 20 2025 15:07:52.
virtio_gpu.h File 11454 bytes August 20 2025 15:07:50.
virtio_ids.h File 3269 bytes August 20 2025 15:07:51.
virtio_input.h File 2506 bytes August 20 2025 15:07:51.
virtio_iommu.h File 3783 bytes August 20 2025 15:07:51.
virtio_mem.h File 7157 bytes August 20 2025 15:07:51.
virtio_mmio.h File 4969 bytes August 20 2025 15:07:50.
virtio_net.h File 10549 bytes August 20 2025 15:07:51.
virtio_pci.h File 7406 bytes August 20 2025 15:07:50.
virtio_ring.h File 7497 bytes August 20 2025 15:07:53.
virtio_rng.h File 265 bytes August 20 2025 15:07:53.
virtio_scsi.h File 6035 bytes August 20 2025 15:07:51.
virtio_snd.h File 9304 bytes August 20 2025 15:07:50.
virtio_types.h File 2153 bytes August 20 2025 15:07:51.
virtio_vsock.h File 3086 bytes August 20 2025 15:07:52.
vm_sockets.h File 6494 bytes August 20 2025 15:07:50.
vm_sockets_diag.h File 963 bytes August 20 2025 15:07:51.
vmcore.h File 431 bytes August 20 2025 15:07:52.
vsockmon.h File 1885 bytes August 20 2025 15:07:50.
vt.h File 3059 bytes August 20 2025 15:07:51.
vtpm_proxy.h File 1719 bytes August 20 2025 15:07:51.
wait.h File 682 bytes August 20 2025 15:07:52.
wanrouter.h File 453 bytes August 20 2025 15:07:52.
watchdog.h File 2335 bytes August 20 2025 15:07:52.
wimax.h File 8371 bytes August 20 2025 15:07:52.
wireless.h File 42703 bytes August 20 2025 15:07:49.
wmi.h File 1886 bytes August 20 2025 15:07:52.
x25.h File 3562 bytes August 20 2025 15:07:52.
xattr.h File 2860 bytes August 20 2025 15:07:53.
xdp_diag.h File 1468 bytes August 20 2025 15:07:52.
xfrm.h File 11994 bytes August 20 2025 15:07:53.
xilinx-v4l2-controls.h File 2976 bytes August 20 2025 15:07:52.
zorro.h File 3296 bytes August 20 2025 15:07:52.
zorro_ids.h File 29963 bytes August 20 2025 15:07:52.

Reading File: //usr/include/linux/pkt_sched.h

/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef __LINUX_PKT_SCHED_H
#define __LINUX_PKT_SCHED_H

#include <linux/const.h>
#include <linux/types.h>

/* Logical priority bands not depending on specific packet scheduler.
   Every scheduler will map them to real traffic classes, if it has
   no more precise mechanism to classify packets.

   These numbers have no special meaning, though their coincidence
   with obsolete IPv6 values is not occasional :-). New IPv6 drafts
   preferred full anarchy inspired by diffserv group.

   Note: TC_PRIO_BESTEFFORT does not mean that it is the most unhappy
   class, actually, as rule it will be handled with more care than
   filler or even bulk.
 */

#define TC_PRIO_BESTEFFORT		0
#define TC_PRIO_FILLER			1
#define TC_PRIO_BULK			2
#define TC_PRIO_INTERACTIVE_BULK	4
#define TC_PRIO_INTERACTIVE		6
#define TC_PRIO_CONTROL			7

#define TC_PRIO_MAX			15

/* Generic queue statistics, available for all the elements.
   Particular schedulers may have also their private records.
 */

struct tc_stats {
	__u64	bytes;			/* Number of enqueued bytes */
	__u32	packets;		/* Number of enqueued packets	*/
	__u32	drops;			/* Packets dropped because of lack of resources */
	__u32	overlimits;		/* Number of throttle events when this
					 * flow goes out of allocated bandwidth */
	__u32	bps;			/* Current flow byte rate */
	__u32	pps;			/* Current flow packet rate */
	__u32	qlen;
	__u32	backlog;
};

struct tc_estimator {
	signed char	interval;
	unsigned char	ewma_log;
};

/* "Handles"
   ---------

    All the traffic control objects have 32bit identifiers, or "handles".

    They can be considered as opaque numbers from user API viewpoint,
    but actually they always consist of two fields: major and
    minor numbers, which are interpreted by kernel specially,
    that may be used by applications, though not recommended.

    F.e. qdisc handles always have minor number equal to zero,
    classes (or flows) have major equal to parent qdisc major, and
    minor uniquely identifying class inside qdisc.

    Macros to manipulate handles:
 */

#define TC_H_MAJ_MASK (0xFFFF0000U)
#define TC_H_MIN_MASK (0x0000FFFFU)
#define TC_H_MAJ(h) ((h)&TC_H_MAJ_MASK)
#define TC_H_MIN(h) ((h)&TC_H_MIN_MASK)
#define TC_H_MAKE(maj,min) (((maj)&TC_H_MAJ_MASK)|((min)&TC_H_MIN_MASK))

#define TC_H_UNSPEC	(0U)
#define TC_H_ROOT	(0xFFFFFFFFU)
#define TC_H_INGRESS    (0xFFFFFFF1U)
#define TC_H_CLSACT	TC_H_INGRESS

#define TC_H_MIN_PRIORITY	0xFFE0U
#define TC_H_MIN_INGRESS	0xFFF2U
#define TC_H_MIN_EGRESS		0xFFF3U

/* Need to corrospond to iproute2 tc/tc_core.h "enum link_layer" */
enum tc_link_layer {
	TC_LINKLAYER_UNAWARE, /* Indicate unaware old iproute2 util */
	TC_LINKLAYER_ETHERNET,
	TC_LINKLAYER_ATM,
};
#define TC_LINKLAYER_MASK 0x0F /* limit use to lower 4 bits */

struct tc_ratespec {
	unsigned char	cell_log;
	__u8		linklayer; /* lower 4 bits */
	unsigned short	overhead;
	short		cell_align;
	unsigned short	mpu;
	__u32		rate;
};

#define TC_RTAB_SIZE	1024

struct tc_sizespec {
	unsigned char	cell_log;
	unsigned char	size_log;
	short		cell_align;
	int		overhead;
	unsigned int	linklayer;
	unsigned int	mpu;
	unsigned int	mtu;
	unsigned int	tsize;
};

enum {
	TCA_STAB_UNSPEC,
	TCA_STAB_BASE,
	TCA_STAB_DATA,
	__TCA_STAB_MAX
};

#define TCA_STAB_MAX (__TCA_STAB_MAX - 1)

/* FIFO section */

struct tc_fifo_qopt {
	__u32	limit;	/* Queue length: bytes for bfifo, packets for pfifo */
};

/* SKBPRIO section */

/*
 * Priorities go from zero to (SKBPRIO_MAX_PRIORITY - 1).
 * SKBPRIO_MAX_PRIORITY should be at least 64 in order for skbprio to be able
 * to map one to one the DS field of IPV4 and IPV6 headers.
 * Memory allocation grows linearly with SKBPRIO_MAX_PRIORITY.
 */

#define SKBPRIO_MAX_PRIORITY 64

struct tc_skbprio_qopt {
	__u32	limit;		/* Queue length in packets. */
};

/* PRIO section */

#define TCQ_PRIO_BANDS	16
#define TCQ_MIN_PRIO_BANDS 2

struct tc_prio_qopt {
	int	bands;			/* Number of bands */
	__u8	priomap[TC_PRIO_MAX+1];	/* Map: logical priority -> PRIO band */
};

/* MULTIQ section */

struct tc_multiq_qopt {
	__u16	bands;			/* Number of bands */
	__u16	max_bands;		/* Maximum number of queues */
};

/* PLUG section */

#define TCQ_PLUG_BUFFER                0
#define TCQ_PLUG_RELEASE_ONE           1
#define TCQ_PLUG_RELEASE_INDEFINITE    2
#define TCQ_PLUG_LIMIT                 3

struct tc_plug_qopt {
	/* TCQ_PLUG_BUFFER: Inset a plug into the queue and
	 *  buffer any incoming packets
	 * TCQ_PLUG_RELEASE_ONE: Dequeue packets from queue head
	 *   to beginning of the next plug.
	 * TCQ_PLUG_RELEASE_INDEFINITE: Dequeue all packets from queue.
	 *   Stop buffering packets until the next TCQ_PLUG_BUFFER
	 *   command is received (just act as a pass-thru queue).
	 * TCQ_PLUG_LIMIT: Increase/decrease queue size
	 */
	int             action;
	__u32           limit;
};

/* TBF section */

struct tc_tbf_qopt {
	struct tc_ratespec rate;
	struct tc_ratespec peakrate;
	__u32		limit;
	__u32		buffer;
	__u32		mtu;
};

enum {
	TCA_TBF_UNSPEC,
	TCA_TBF_PARMS,
	TCA_TBF_RTAB,
	TCA_TBF_PTAB,
	TCA_TBF_RATE64,
	TCA_TBF_PRATE64,
	TCA_TBF_BURST,
	TCA_TBF_PBURST,
	TCA_TBF_PAD,
	__TCA_TBF_MAX,
};

#define TCA_TBF_MAX (__TCA_TBF_MAX - 1)


/* TEQL section */

/* TEQL does not require any parameters */

/* SFQ section */

struct tc_sfq_qopt {
	unsigned	quantum;	/* Bytes per round allocated to flow */
	int		perturb_period;	/* Period of hash perturbation */
	__u32		limit;		/* Maximal packets in queue */
	unsigned	divisor;	/* Hash divisor  */
	unsigned	flows;		/* Maximal number of flows  */
};

struct tc_sfqred_stats {
	__u32           prob_drop;      /* Early drops, below max threshold */
	__u32           forced_drop;	/* Early drops, after max threshold */
	__u32           prob_mark;      /* Marked packets, below max threshold */
	__u32           forced_mark;    /* Marked packets, after max threshold */
	__u32           prob_mark_head; /* Marked packets, below max threshold */
	__u32           forced_mark_head;/* Marked packets, after max threshold */
};

struct tc_sfq_qopt_v1 {
	struct tc_sfq_qopt v0;
	unsigned int	depth;		/* max number of packets per flow */
	unsigned int	headdrop;
/* SFQRED parameters */
	__u32		limit;		/* HARD maximal flow queue length (bytes) */
	__u32		qth_min;	/* Min average length threshold (bytes) */
	__u32		qth_max;	/* Max average length threshold (bytes) */
	unsigned char   Wlog;		/* log(W)		*/
	unsigned char   Plog;		/* log(P_max/(qth_max-qth_min))	*/
	unsigned char   Scell_log;	/* cell size for idle damping */
	unsigned char	flags;
	__u32		max_P;		/* probability, high resolution */
/* SFQRED stats */
	struct tc_sfqred_stats stats;
};


struct tc_sfq_xstats {
	__s32		allot;
};

/* RED section */

enum {
	TCA_RED_UNSPEC,
	TCA_RED_PARMS,
	TCA_RED_STAB,
	TCA_RED_MAX_P,
	TCA_RED_FLAGS,		/* bitfield32 */
	TCA_RED_EARLY_DROP_BLOCK, /* u32 */
	TCA_RED_MARK_BLOCK,	/* u32 */
	__TCA_RED_MAX,
};

#define TCA_RED_MAX (__TCA_RED_MAX - 1)

struct tc_red_qopt {
	__u32		limit;		/* HARD maximal queue length (bytes)	*/
	__u32		qth_min;	/* Min average length threshold (bytes) */
	__u32		qth_max;	/* Max average length threshold (bytes) */
	unsigned char   Wlog;		/* log(W)		*/
	unsigned char   Plog;		/* log(P_max/(qth_max-qth_min))	*/
	unsigned char   Scell_log;	/* cell size for idle damping */

	/* This field can be used for flags that a RED-like qdisc has
	 * historically supported. E.g. when configuring RED, it can be used for
	 * ECN, HARDDROP and ADAPTATIVE. For SFQ it can be used for ECN,
	 * HARDDROP. Etc. Because this field has not been validated, and is
	 * copied back on dump, any bits besides those to which a given qdisc
	 * has assigned a historical meaning need to be considered for free use
	 * by userspace tools.
	 *
	 * Any further flags need to be passed differently, e.g. through an
	 * attribute (such as TCA_RED_FLAGS above). Such attribute should allow
	 * passing both recent and historic flags in one value.
	 */
	unsigned char	flags;
#define TC_RED_ECN		1
#define TC_RED_HARDDROP		2
#define TC_RED_ADAPTATIVE	4
#define TC_RED_NODROP		8
};

#define TC_RED_HISTORIC_FLAGS (TC_RED_ECN | TC_RED_HARDDROP | TC_RED_ADAPTATIVE)

struct tc_red_xstats {
	__u32           early;          /* Early drops */
	__u32           pdrop;          /* Drops due to queue limits */
	__u32           other;          /* Drops due to drop() calls */
	__u32           marked;         /* Marked packets */
};

/* GRED section */

#define MAX_DPs 16

enum {
       TCA_GRED_UNSPEC,
       TCA_GRED_PARMS,
       TCA_GRED_STAB,
       TCA_GRED_DPS,
       TCA_GRED_MAX_P,
       TCA_GRED_LIMIT,
       TCA_GRED_VQ_LIST,	/* nested TCA_GRED_VQ_ENTRY */
       __TCA_GRED_MAX,
};

#define TCA_GRED_MAX (__TCA_GRED_MAX - 1)

enum {
	TCA_GRED_VQ_ENTRY_UNSPEC,
	TCA_GRED_VQ_ENTRY,	/* nested TCA_GRED_VQ_* */
	__TCA_GRED_VQ_ENTRY_MAX,
};
#define TCA_GRED_VQ_ENTRY_MAX (__TCA_GRED_VQ_ENTRY_MAX - 1)

enum {
	TCA_GRED_VQ_UNSPEC,
	TCA_GRED_VQ_PAD,
	TCA_GRED_VQ_DP,			/* u32 */
	TCA_GRED_VQ_STAT_BYTES,		/* u64 */
	TCA_GRED_VQ_STAT_PACKETS,	/* u32 */
	TCA_GRED_VQ_STAT_BACKLOG,	/* u32 */
	TCA_GRED_VQ_STAT_PROB_DROP,	/* u32 */
	TCA_GRED_VQ_STAT_PROB_MARK,	/* u32 */
	TCA_GRED_VQ_STAT_FORCED_DROP,	/* u32 */
	TCA_GRED_VQ_STAT_FORCED_MARK,	/* u32 */
	TCA_GRED_VQ_STAT_PDROP,		/* u32 */
	TCA_GRED_VQ_STAT_OTHER,		/* u32 */
	TCA_GRED_VQ_FLAGS,		/* u32 */
	__TCA_GRED_VQ_MAX
};

#define TCA_GRED_VQ_MAX (__TCA_GRED_VQ_MAX - 1)

struct tc_gred_qopt {
	__u32		limit;        /* HARD maximal queue length (bytes)    */
	__u32		qth_min;      /* Min average length threshold (bytes) */
	__u32		qth_max;      /* Max average length threshold (bytes) */
	__u32		DP;           /* up to 2^32 DPs */
	__u32		backlog;
	__u32		qave;
	__u32		forced;
	__u32		early;
	__u32		other;
	__u32		pdrop;
	__u8		Wlog;         /* log(W)               */
	__u8		Plog;         /* log(P_max/(qth_max-qth_min)) */
	__u8		Scell_log;    /* cell size for idle damping */
	__u8		prio;         /* prio of this VQ */
	__u32		packets;
	__u32		bytesin;
};

/* gred setup */
struct tc_gred_sopt {
	__u32		DPs;
	__u32		def_DP;
	__u8		grio;
	__u8		flags;
	__u16		pad1;
};

/* CHOKe section */

enum {
	TCA_CHOKE_UNSPEC,
	TCA_CHOKE_PARMS,
	TCA_CHOKE_STAB,
	TCA_CHOKE_MAX_P,
	__TCA_CHOKE_MAX,
};

#define TCA_CHOKE_MAX (__TCA_CHOKE_MAX - 1)

struct tc_choke_qopt {
	__u32		limit;		/* Hard queue length (packets)	*/
	__u32		qth_min;	/* Min average threshold (packets) */
	__u32		qth_max;	/* Max average threshold (packets) */
	unsigned char   Wlog;		/* log(W)		*/
	unsigned char   Plog;		/* log(P_max/(qth_max-qth_min))	*/
	unsigned char   Scell_log;	/* cell size for idle damping */
	unsigned char	flags;		/* see RED flags */
};

struct tc_choke_xstats {
	__u32		early;          /* Early drops */
	__u32		pdrop;          /* Drops due to queue limits */
	__u32		other;          /* Drops due to drop() calls */
	__u32		marked;         /* Marked packets */
	__u32		matched;	/* Drops due to flow match */
};

/* HTB section */
#define TC_HTB_NUMPRIO		8
#define TC_HTB_MAXDEPTH		8
#define TC_HTB_PROTOVER		3 /* the same as HTB and TC's major */

struct tc_htb_opt {
	struct tc_ratespec 	rate;
	struct tc_ratespec 	ceil;
	__u32	buffer;
	__u32	cbuffer;
	__u32	quantum;
	__u32	level;		/* out only */
	__u32	prio;
};
struct tc_htb_glob {
	__u32 version;		/* to match HTB/TC */
    	__u32 rate2quantum;	/* bps->quantum divisor */
    	__u32 defcls;		/* default class number */
	__u32 debug;		/* debug flags */

	/* stats */
	__u32 direct_pkts; /* count of non shaped packets */
};
enum {
	TCA_HTB_UNSPEC,
	TCA_HTB_PARMS,
	TCA_HTB_INIT,
	TCA_HTB_CTAB,
	TCA_HTB_RTAB,
	TCA_HTB_DIRECT_QLEN,
	TCA_HTB_RATE64,
	TCA_HTB_CEIL64,
	TCA_HTB_PAD,
	TCA_HTB_OFFLOAD,
	__TCA_HTB_MAX,
};

#define TCA_HTB_MAX (__TCA_HTB_MAX - 1)

struct tc_htb_xstats {
	__u32 lends;
	__u32 borrows;
	__u32 giants;	/* unused since 'Make HTB scheduler work with TSO.' */
	__s32 tokens;
	__s32 ctokens;
};

/* HFSC section */

struct tc_hfsc_qopt {
	__u16	defcls;		/* default class */
};

struct tc_service_curve {
	__u32	m1;		/* slope of the first segment in bps */
	__u32	d;		/* x-projection of the first segment in us */
	__u32	m2;		/* slope of the second segment in bps */
};

struct tc_hfsc_stats {
	__u64	work;		/* total work done */
	__u64	rtwork;		/* work done by real-time criteria */
	__u32	period;		/* current period */
	__u32	level;		/* class level in hierarchy */
};

enum {
	TCA_HFSC_UNSPEC,
	TCA_HFSC_RSC,
	TCA_HFSC_FSC,
	TCA_HFSC_USC,
	__TCA_HFSC_MAX,
};

#define TCA_HFSC_MAX (__TCA_HFSC_MAX - 1)


/* CBQ section */

#define TC_CBQ_MAXPRIO		8
#define TC_CBQ_MAXLEVEL		8
#define TC_CBQ_DEF_EWMA		5

struct tc_cbq_lssopt {
	unsigned char	change;
	unsigned char	flags;
#define TCF_CBQ_LSS_BOUNDED	1
#define TCF_CBQ_LSS_ISOLATED	2
	unsigned char  	ewma_log;
	unsigned char  	level;
#define TCF_CBQ_LSS_FLAGS	1
#define TCF_CBQ_LSS_EWMA	2
#define TCF_CBQ_LSS_MAXIDLE	4
#define TCF_CBQ_LSS_MINIDLE	8
#define TCF_CBQ_LSS_OFFTIME	0x10
#define TCF_CBQ_LSS_AVPKT	0x20
	__u32		maxidle;
	__u32		minidle;
	__u32		offtime;
	__u32		avpkt;
};

struct tc_cbq_wrropt {
	unsigned char	flags;
	unsigned char	priority;
	unsigned char	cpriority;
	unsigned char	__reserved;
	__u32		allot;
	__u32		weight;
};

struct tc_cbq_ovl {
	unsigned char	strategy;
#define	TC_CBQ_OVL_CLASSIC	0
#define	TC_CBQ_OVL_DELAY	1
#define	TC_CBQ_OVL_LOWPRIO	2
#define	TC_CBQ_OVL_DROP		3
#define	TC_CBQ_OVL_RCLASSIC	4
	unsigned char	priority2;
	__u16		pad;
	__u32		penalty;
};

struct tc_cbq_police {
	unsigned char	police;
	unsigned char	__res1;
	unsigned short	__res2;
};

struct tc_cbq_fopt {
	__u32		split;
	__u32		defmap;
	__u32		defchange;
};

struct tc_cbq_xstats {
	__u32		borrows;
	__u32		overactions;
	__s32		avgidle;
	__s32		undertime;
};

enum {
	TCA_CBQ_UNSPEC,
	TCA_CBQ_LSSOPT,
	TCA_CBQ_WRROPT,
	TCA_CBQ_FOPT,
	TCA_CBQ_OVL_STRATEGY,
	TCA_CBQ_RATE,
	TCA_CBQ_RTAB,
	TCA_CBQ_POLICE,
	__TCA_CBQ_MAX,
};

#define TCA_CBQ_MAX	(__TCA_CBQ_MAX - 1)

/* dsmark section */

enum {
	TCA_DSMARK_UNSPEC,
	TCA_DSMARK_INDICES,
	TCA_DSMARK_DEFAULT_INDEX,
	TCA_DSMARK_SET_TC_INDEX,
	TCA_DSMARK_MASK,
	TCA_DSMARK_VALUE,
	__TCA_DSMARK_MAX,
};

#define TCA_DSMARK_MAX (__TCA_DSMARK_MAX - 1)

/* ATM  section */

enum {
	TCA_ATM_UNSPEC,
	TCA_ATM_FD,		/* file/socket descriptor */
	TCA_ATM_PTR,		/* pointer to descriptor - later */
	TCA_ATM_HDR,		/* LL header */
	TCA_ATM_EXCESS,		/* excess traffic class (0 for CLP)  */
	TCA_ATM_ADDR,		/* PVC address (for output only) */
	TCA_ATM_STATE,		/* VC state (ATM_VS_*; for output only) */
	__TCA_ATM_MAX,
};

#define TCA_ATM_MAX	(__TCA_ATM_MAX - 1)

/* Network emulator */

enum {
	TCA_NETEM_UNSPEC,
	TCA_NETEM_CORR,
	TCA_NETEM_DELAY_DIST,
	TCA_NETEM_REORDER,
	TCA_NETEM_CORRUPT,
	TCA_NETEM_LOSS,
	TCA_NETEM_RATE,
	TCA_NETEM_ECN,
	TCA_NETEM_RATE64,
	TCA_NETEM_PAD,
	TCA_NETEM_LATENCY64,
	TCA_NETEM_JITTER64,
	TCA_NETEM_SLOT,
	TCA_NETEM_SLOT_DIST,
	__TCA_NETEM_MAX,
};

#define TCA_NETEM_MAX (__TCA_NETEM_MAX - 1)

struct tc_netem_qopt {
	__u32	latency;	/* added delay (us) */
	__u32   limit;		/* fifo limit (packets) */
	__u32	loss;		/* random packet loss (0=none ~0=100%) */
	__u32	gap;		/* re-ordering gap (0 for none) */
	__u32   duplicate;	/* random packet dup  (0=none ~0=100%) */
	__u32	jitter;		/* random jitter in latency (us) */
};

struct tc_netem_corr {
	__u32	delay_corr;	/* delay correlation */
	__u32	loss_corr;	/* packet loss correlation */
	__u32	dup_corr;	/* duplicate correlation  */
};

struct tc_netem_reorder {
	__u32	probability;
	__u32	correlation;
};

struct tc_netem_corrupt {
	__u32	probability;
	__u32	correlation;
};

struct tc_netem_rate {
	__u32	rate;	/* byte/s */
	__s32	packet_overhead;
	__u32	cell_size;
	__s32	cell_overhead;
};

struct tc_netem_slot {
	__s64   min_delay; /* nsec */
	__s64   max_delay;
	__s32   max_packets;
	__s32   max_bytes;
	__s64	dist_delay; /* nsec */
	__s64	dist_jitter; /* nsec */
};

enum {
	NETEM_LOSS_UNSPEC,
	NETEM_LOSS_GI,		/* General Intuitive - 4 state model */
	NETEM_LOSS_GE,		/* Gilbert Elliot models */
	__NETEM_LOSS_MAX
};
#define NETEM_LOSS_MAX (__NETEM_LOSS_MAX - 1)

/* State transition probabilities for 4 state model */
struct tc_netem_gimodel {
	__u32	p13;
	__u32	p31;
	__u32	p32;
	__u32	p14;
	__u32	p23;
};

/* Gilbert-Elliot models */
struct tc_netem_gemodel {
	__u32 p;
	__u32 r;
	__u32 h;
	__u32 k1;
};

#define NETEM_DIST_SCALE	8192
#define NETEM_DIST_MAX		16384

/* DRR */

enum {
	TCA_DRR_UNSPEC,
	TCA_DRR_QUANTUM,
	__TCA_DRR_MAX
};

#define TCA_DRR_MAX	(__TCA_DRR_MAX - 1)

struct tc_drr_stats {
	__u32	deficit;
};

/* MQPRIO */
#define TC_QOPT_BITMASK 15
#define TC_QOPT_MAX_QUEUE 16

enum {
	TC_MQPRIO_HW_OFFLOAD_NONE,	/* no offload requested */
	TC_MQPRIO_HW_OFFLOAD_TCS,	/* offload TCs, no queue counts */
	__TC_MQPRIO_HW_OFFLOAD_MAX
};

#define TC_MQPRIO_HW_OFFLOAD_MAX (__TC_MQPRIO_HW_OFFLOAD_MAX - 1)

enum {
	TC_MQPRIO_MODE_DCB,
	TC_MQPRIO_MODE_CHANNEL,
	__TC_MQPRIO_MODE_MAX
};

#define __TC_MQPRIO_MODE_MAX (__TC_MQPRIO_MODE_MAX - 1)

enum {
	TC_MQPRIO_SHAPER_DCB,
	TC_MQPRIO_SHAPER_BW_RATE,	/* Add new shapers below */
	__TC_MQPRIO_SHAPER_MAX
};

#define __TC_MQPRIO_SHAPER_MAX (__TC_MQPRIO_SHAPER_MAX - 1)

struct tc_mqprio_qopt {
	__u8	num_tc;
	__u8	prio_tc_map[TC_QOPT_BITMASK + 1];
	__u8	hw;
	__u16	count[TC_QOPT_MAX_QUEUE];
	__u16	offset[TC_QOPT_MAX_QUEUE];
};

#define TC_MQPRIO_F_MODE		0x1
#define TC_MQPRIO_F_SHAPER		0x2
#define TC_MQPRIO_F_MIN_RATE		0x4
#define TC_MQPRIO_F_MAX_RATE		0x8

enum {
	TCA_MQPRIO_UNSPEC,
	TCA_MQPRIO_MODE,
	TCA_MQPRIO_SHAPER,
	TCA_MQPRIO_MIN_RATE64,
	TCA_MQPRIO_MAX_RATE64,
	__TCA_MQPRIO_MAX,
};

#define TCA_MQPRIO_MAX (__TCA_MQPRIO_MAX - 1)

/* SFB */

enum {
	TCA_SFB_UNSPEC,
	TCA_SFB_PARMS,
	__TCA_SFB_MAX,
};

#define TCA_SFB_MAX (__TCA_SFB_MAX - 1)

/*
 * Note: increment, decrement are Q0.16 fixed-point values.
 */
struct tc_sfb_qopt {
	__u32 rehash_interval;	/* delay between hash move, in ms */
	__u32 warmup_time;	/* double buffering warmup time in ms (warmup_time < rehash_interval) */
	__u32 max;		/* max len of qlen_min */
	__u32 bin_size;		/* maximum queue length per bin */
	__u32 increment;	/* probability increment, (d1 in Blue) */
	__u32 decrement;	/* probability decrement, (d2 in Blue) */
	__u32 limit;		/* max SFB queue length */
	__u32 penalty_rate;	/* inelastic flows are rate limited to 'rate' pps */
	__u32 penalty_burst;
};

struct tc_sfb_xstats {
	__u32 earlydrop;
	__u32 penaltydrop;
	__u32 bucketdrop;
	__u32 queuedrop;
	__u32 childdrop; /* drops in child qdisc */
	__u32 marked;
	__u32 maxqlen;
	__u32 maxprob;
	__u32 avgprob;
};

#define SFB_MAX_PROB 0xFFFF

/* QFQ */
enum {
	TCA_QFQ_UNSPEC,
	TCA_QFQ_WEIGHT,
	TCA_QFQ_LMAX,
	__TCA_QFQ_MAX
};

#define TCA_QFQ_MAX	(__TCA_QFQ_MAX - 1)

struct tc_qfq_stats {
	__u32 weight;
	__u32 lmax;
};

/* CODEL */

enum {
	TCA_CODEL_UNSPEC,
	TCA_CODEL_TARGET,
	TCA_CODEL_LIMIT,
	TCA_CODEL_INTERVAL,
	TCA_CODEL_ECN,
	TCA_CODEL_CE_THRESHOLD,
	__TCA_CODEL_MAX
};

#define TCA_CODEL_MAX	(__TCA_CODEL_MAX - 1)

struct tc_codel_xstats {
	__u32	maxpacket; /* largest packet we've seen so far */
	__u32	count;	   /* how many drops we've done since the last time we
			    * entered dropping state
			    */
	__u32	lastcount; /* count at entry to dropping state */
	__u32	ldelay;    /* in-queue delay seen by most recently dequeued packet */
	__s32	drop_next; /* time to drop next packet */
	__u32	drop_overlimit; /* number of time max qdisc packet limit was hit */
	__u32	ecn_mark;  /* number of packets we ECN marked instead of dropped */
	__u32	dropping;  /* are we in dropping state ? */
	__u32	ce_mark;   /* number of CE marked packets because of ce_threshold */
};

/* FQ_CODEL */

#define FQ_CODEL_QUANTUM_MAX (1 << 20)

enum {
	TCA_FQ_CODEL_UNSPEC,
	TCA_FQ_CODEL_TARGET,
	TCA_FQ_CODEL_LIMIT,
	TCA_FQ_CODEL_INTERVAL,
	TCA_FQ_CODEL_ECN,
	TCA_FQ_CODEL_FLOWS,
	TCA_FQ_CODEL_QUANTUM,
	TCA_FQ_CODEL_CE_THRESHOLD,
	TCA_FQ_CODEL_DROP_BATCH_SIZE,
	TCA_FQ_CODEL_MEMORY_LIMIT,
	TCA_FQ_CODEL_CE_THRESHOLD_SELECTOR,
	TCA_FQ_CODEL_CE_THRESHOLD_MASK,
	__TCA_FQ_CODEL_MAX
};

#define TCA_FQ_CODEL_MAX	(__TCA_FQ_CODEL_MAX - 1)

enum {
	TCA_FQ_CODEL_XSTATS_QDISC,
	TCA_FQ_CODEL_XSTATS_CLASS,
};

struct tc_fq_codel_qd_stats {
	__u32	maxpacket;	/* largest packet we've seen so far */
	__u32	drop_overlimit; /* number of time max qdisc
				 * packet limit was hit
				 */
	__u32	ecn_mark;	/* number of packets we ECN marked
				 * instead of being dropped
				 */
	__u32	new_flow_count; /* number of time packets
				 * created a 'new flow'
				 */
	__u32	new_flows_len;	/* count of flows in new list */
	__u32	old_flows_len;	/* count of flows in old list */
	__u32	ce_mark;	/* packets above ce_threshold */
	__u32	memory_usage;	/* in bytes */
	__u32	drop_overmemory;
};

struct tc_fq_codel_cl_stats {
	__s32	deficit;
	__u32	ldelay;		/* in-queue delay seen by most recently
				 * dequeued packet
				 */
	__u32	count;
	__u32	lastcount;
	__u32	dropping;
	__s32	drop_next;
};

struct tc_fq_codel_xstats {
	__u32	type;
	union {
		struct tc_fq_codel_qd_stats qdisc_stats;
		struct tc_fq_codel_cl_stats class_stats;
	};
};

/* FQ */

enum {
	TCA_FQ_UNSPEC,

	TCA_FQ_PLIMIT,		/* limit of total number of packets in queue */

	TCA_FQ_FLOW_PLIMIT,	/* limit of packets per flow */

	TCA_FQ_QUANTUM,		/* RR quantum */

	TCA_FQ_INITIAL_QUANTUM,		/* RR quantum for new flow */

	TCA_FQ_RATE_ENABLE,	/* enable/disable rate limiting */

	TCA_FQ_FLOW_DEFAULT_RATE,/* obsolete, do not use */

	TCA_FQ_FLOW_MAX_RATE,	/* per flow max rate */

	TCA_FQ_BUCKETS_LOG,	/* log2(number of buckets) */

	TCA_FQ_FLOW_REFILL_DELAY,	/* flow credit refill delay in usec */

	TCA_FQ_ORPHAN_MASK,	/* mask applied to orphaned skb hashes */

	TCA_FQ_LOW_RATE_THRESHOLD, /* per packet delay under this rate */

	TCA_FQ_CE_THRESHOLD,	/* DCTCP-like CE-marking threshold */

	TCA_FQ_TIMER_SLACK,	/* timer slack */

	__TCA_FQ_MAX
};

#define TCA_FQ_MAX	(__TCA_FQ_MAX - 1)

struct tc_fq_qd_stats {
	__u64	gc_flows;
	__u64	highprio_packets;
	__u64	tcp_retrans;
	__u64	throttled;
	__u64	flows_plimit;
	__u64	pkts_too_long;
	__u64	allocation_errors;
	__s64	time_next_delayed_flow;
	__u32	flows;
	__u32	inactive_flows;
	__u32	throttled_flows;
	__u32	unthrottle_latency_ns;
	__u64	ce_mark;		/* packets above ce_threshold */
};

/* Heavy-Hitter Filter */

enum {
	TCA_HHF_UNSPEC,
	TCA_HHF_BACKLOG_LIMIT,
	TCA_HHF_QUANTUM,
	TCA_HHF_HH_FLOWS_LIMIT,
	TCA_HHF_RESET_TIMEOUT,
	TCA_HHF_ADMIT_BYTES,
	TCA_HHF_EVICT_TIMEOUT,
	TCA_HHF_NON_HH_WEIGHT,
	__TCA_HHF_MAX
};

#define TCA_HHF_MAX	(__TCA_HHF_MAX - 1)

struct tc_hhf_xstats {
	__u32	drop_overlimit; /* number of times max qdisc packet limit
				 * was hit
				 */
	__u32	hh_overlimit;   /* number of times max heavy-hitters was hit */
	__u32	hh_tot_count;   /* number of captured heavy-hitters so far */
	__u32	hh_cur_count;   /* number of current heavy-hitters */
};

/* PIE */
enum {
	TCA_PIE_UNSPEC,
	TCA_PIE_TARGET,
	TCA_PIE_LIMIT,
	TCA_PIE_TUPDATE,
	TCA_PIE_ALPHA,
	TCA_PIE_BETA,
	TCA_PIE_ECN,
	TCA_PIE_BYTEMODE,
	TCA_PIE_DQ_RATE_ESTIMATOR,
	__TCA_PIE_MAX
};
#define TCA_PIE_MAX   (__TCA_PIE_MAX - 1)

struct tc_pie_xstats {
	__u64 prob;			/* current probability */
	__u32 delay;			/* current delay in ms */
	__u32 avg_dq_rate;		/* current average dq_rate in
					 * bits/pie_time
					 */
	__u32 dq_rate_estimating;	/* is avg_dq_rate being calculated? */
	__u32 packets_in;		/* total number of packets enqueued */
	__u32 dropped;			/* packets dropped due to pie_action */
	__u32 overlimit;		/* dropped due to lack of space
					 * in queue
					 */
	__u32 maxq;			/* maximum queue size */
	__u32 ecn_mark;			/* packets marked with ecn*/
};

/* FQ PIE */
enum {
	TCA_FQ_PIE_UNSPEC,
	TCA_FQ_PIE_LIMIT,
	TCA_FQ_PIE_FLOWS,
	TCA_FQ_PIE_TARGET,
	TCA_FQ_PIE_TUPDATE,
	TCA_FQ_PIE_ALPHA,
	TCA_FQ_PIE_BETA,
	TCA_FQ_PIE_QUANTUM,
	TCA_FQ_PIE_MEMORY_LIMIT,
	TCA_FQ_PIE_ECN_PROB,
	TCA_FQ_PIE_ECN,
	TCA_FQ_PIE_BYTEMODE,
	TCA_FQ_PIE_DQ_RATE_ESTIMATOR,
	__TCA_FQ_PIE_MAX
};
#define TCA_FQ_PIE_MAX   (__TCA_FQ_PIE_MAX - 1)

struct tc_fq_pie_xstats {
	__u32 packets_in;	/* total number of packets enqueued */
	__u32 dropped;		/* packets dropped due to fq_pie_action */
	__u32 overlimit;	/* dropped due to lack of space in queue */
	__u32 overmemory;	/* dropped due to lack of memory in queue */
	__u32 ecn_mark;		/* packets marked with ecn */
	__u32 new_flow_count;	/* count of new flows created by packets */
	__u32 new_flows_len;	/* count of flows in new list */
	__u32 old_flows_len;	/* count of flows in old list */
	__u32 memory_usage;	/* total memory across all queues */
};

/* CBS */
struct tc_cbs_qopt {
	__u8 offload;
	__u8 _pad[3];
	__s32 hicredit;
	__s32 locredit;
	__s32 idleslope;
	__s32 sendslope;
};

enum {
	TCA_CBS_UNSPEC,
	TCA_CBS_PARMS,
	__TCA_CBS_MAX,
};

#define TCA_CBS_MAX (__TCA_CBS_MAX - 1)


/* ETF */
struct tc_etf_qopt {
	__s32 delta;
	__s32 clockid;
	__u32 flags;
#define TC_ETF_DEADLINE_MODE_ON	_BITUL(0)
#define TC_ETF_OFFLOAD_ON	_BITUL(1)
#define TC_ETF_SKIP_SOCK_CHECK	_BITUL(2)
};

enum {
	TCA_ETF_UNSPEC,
	TCA_ETF_PARMS,
	__TCA_ETF_MAX,
};

#define TCA_ETF_MAX (__TCA_ETF_MAX - 1)


/* CAKE */
enum {
	TCA_CAKE_UNSPEC,
	TCA_CAKE_PAD,
	TCA_CAKE_BASE_RATE64,
	TCA_CAKE_DIFFSERV_MODE,
	TCA_CAKE_ATM,
	TCA_CAKE_FLOW_MODE,
	TCA_CAKE_OVERHEAD,
	TCA_CAKE_RTT,
	TCA_CAKE_TARGET,
	TCA_CAKE_AUTORATE,
	TCA_CAKE_MEMORY,
	TCA_CAKE_NAT,
	TCA_CAKE_RAW,
	TCA_CAKE_WASH,
	TCA_CAKE_MPU,
	TCA_CAKE_INGRESS,
	TCA_CAKE_ACK_FILTER,
	TCA_CAKE_SPLIT_GSO,
	TCA_CAKE_FWMARK,
	__TCA_CAKE_MAX
};
#define TCA_CAKE_MAX	(__TCA_CAKE_MAX - 1)

enum {
	__TCA_CAKE_STATS_INVALID,
	TCA_CAKE_STATS_PAD,
	TCA_CAKE_STATS_CAPACITY_ESTIMATE64,
	TCA_CAKE_STATS_MEMORY_LIMIT,
	TCA_CAKE_STATS_MEMORY_USED,
	TCA_CAKE_STATS_AVG_NETOFF,
	TCA_CAKE_STATS_MIN_NETLEN,
	TCA_CAKE_STATS_MAX_NETLEN,
	TCA_CAKE_STATS_MIN_ADJLEN,
	TCA_CAKE_STATS_MAX_ADJLEN,
	TCA_CAKE_STATS_TIN_STATS,
	TCA_CAKE_STATS_DEFICIT,
	TCA_CAKE_STATS_COBALT_COUNT,
	TCA_CAKE_STATS_DROPPING,
	TCA_CAKE_STATS_DROP_NEXT_US,
	TCA_CAKE_STATS_P_DROP,
	TCA_CAKE_STATS_BLUE_TIMER_US,
	__TCA_CAKE_STATS_MAX
};
#define TCA_CAKE_STATS_MAX (__TCA_CAKE_STATS_MAX - 1)

enum {
	__TCA_CAKE_TIN_STATS_INVALID,
	TCA_CAKE_TIN_STATS_PAD,
	TCA_CAKE_TIN_STATS_SENT_PACKETS,
	TCA_CAKE_TIN_STATS_SENT_BYTES64,
	TCA_CAKE_TIN_STATS_DROPPED_PACKETS,
	TCA_CAKE_TIN_STATS_DROPPED_BYTES64,
	TCA_CAKE_TIN_STATS_ACKS_DROPPED_PACKETS,
	TCA_CAKE_TIN_STATS_ACKS_DROPPED_BYTES64,
	TCA_CAKE_TIN_STATS_ECN_MARKED_PACKETS,
	TCA_CAKE_TIN_STATS_ECN_MARKED_BYTES64,
	TCA_CAKE_TIN_STATS_BACKLOG_PACKETS,
	TCA_CAKE_TIN_STATS_BACKLOG_BYTES,
	TCA_CAKE_TIN_STATS_THRESHOLD_RATE64,
	TCA_CAKE_TIN_STATS_TARGET_US,
	TCA_CAKE_TIN_STATS_INTERVAL_US,
	TCA_CAKE_TIN_STATS_WAY_INDIRECT_HITS,
	TCA_CAKE_TIN_STATS_WAY_MISSES,
	TCA_CAKE_TIN_STATS_WAY_COLLISIONS,
	TCA_CAKE_TIN_STATS_PEAK_DELAY_US,
	TCA_CAKE_TIN_STATS_AVG_DELAY_US,
	TCA_CAKE_TIN_STATS_BASE_DELAY_US,
	TCA_CAKE_TIN_STATS_SPARSE_FLOWS,
	TCA_CAKE_TIN_STATS_BULK_FLOWS,
	TCA_CAKE_TIN_STATS_UNRESPONSIVE_FLOWS,
	TCA_CAKE_TIN_STATS_MAX_SKBLEN,
	TCA_CAKE_TIN_STATS_FLOW_QUANTUM,
	__TCA_CAKE_TIN_STATS_MAX
};
#define TCA_CAKE_TIN_STATS_MAX (__TCA_CAKE_TIN_STATS_MAX - 1)
#define TC_CAKE_MAX_TINS (8)

enum {
	CAKE_FLOW_NONE = 0,
	CAKE_FLOW_SRC_IP,
	CAKE_FLOW_DST_IP,
	CAKE_FLOW_HOSTS,    /* = CAKE_FLOW_SRC_IP | CAKE_FLOW_DST_IP */
	CAKE_FLOW_FLOWS,
	CAKE_FLOW_DUAL_SRC, /* = CAKE_FLOW_SRC_IP | CAKE_FLOW_FLOWS */
	CAKE_FLOW_DUAL_DST, /* = CAKE_FLOW_DST_IP | CAKE_FLOW_FLOWS */
	CAKE_FLOW_TRIPLE,   /* = CAKE_FLOW_HOSTS  | CAKE_FLOW_FLOWS */
	CAKE_FLOW_MAX,
};

enum {
	CAKE_DIFFSERV_DIFFSERV3 = 0,
	CAKE_DIFFSERV_DIFFSERV4,
	CAKE_DIFFSERV_DIFFSERV8,
	CAKE_DIFFSERV_BESTEFFORT,
	CAKE_DIFFSERV_PRECEDENCE,
	CAKE_DIFFSERV_MAX
};

enum {
	CAKE_ACK_NONE = 0,
	CAKE_ACK_FILTER,
	CAKE_ACK_AGGRESSIVE,
	CAKE_ACK_MAX
};

enum {
	CAKE_ATM_NONE = 0,
	CAKE_ATM_ATM,
	CAKE_ATM_PTM,
	CAKE_ATM_MAX
};


/* TAPRIO */
enum {
	TC_TAPRIO_CMD_SET_GATES = 0x00,
	TC_TAPRIO_CMD_SET_AND_HOLD = 0x01,
	TC_TAPRIO_CMD_SET_AND_RELEASE = 0x02,
};

enum {
	TCA_TAPRIO_SCHED_ENTRY_UNSPEC,
	TCA_TAPRIO_SCHED_ENTRY_INDEX, /* u32 */
	TCA_TAPRIO_SCHED_ENTRY_CMD, /* u8 */
	TCA_TAPRIO_SCHED_ENTRY_GATE_MASK, /* u32 */
	TCA_TAPRIO_SCHED_ENTRY_INTERVAL, /* u32 */
	__TCA_TAPRIO_SCHED_ENTRY_MAX,
};
#define TCA_TAPRIO_SCHED_ENTRY_MAX (__TCA_TAPRIO_SCHED_ENTRY_MAX - 1)

/* The format for schedule entry list is:
 * [TCA_TAPRIO_SCHED_ENTRY_LIST]
 *   [TCA_TAPRIO_SCHED_ENTRY]
 *     [TCA_TAPRIO_SCHED_ENTRY_CMD]
 *     [TCA_TAPRIO_SCHED_ENTRY_GATES]
 *     [TCA_TAPRIO_SCHED_ENTRY_INTERVAL]
 */
enum {
	TCA_TAPRIO_SCHED_UNSPEC,
	TCA_TAPRIO_SCHED_ENTRY,
	__TCA_TAPRIO_SCHED_MAX,
};

#define TCA_TAPRIO_SCHED_MAX (__TCA_TAPRIO_SCHED_MAX - 1)

/* The format for the admin sched (dump only):
 * [TCA_TAPRIO_SCHED_ADMIN_SCHED]
 *   [TCA_TAPRIO_ATTR_SCHED_BASE_TIME]
 *   [TCA_TAPRIO_ATTR_SCHED_ENTRY_LIST]
 *     [TCA_TAPRIO_ATTR_SCHED_ENTRY]
 *       [TCA_TAPRIO_ATTR_SCHED_ENTRY_CMD]
 *       [TCA_TAPRIO_ATTR_SCHED_ENTRY_GATES]
 *       [TCA_TAPRIO_ATTR_SCHED_ENTRY_INTERVAL]
 */

#define TCA_TAPRIO_ATTR_FLAG_TXTIME_ASSIST	_BITUL(0)
#define TCA_TAPRIO_ATTR_FLAG_FULL_OFFLOAD	_BITUL(1)

enum {
	TCA_TAPRIO_TC_ENTRY_UNSPEC,
	TCA_TAPRIO_TC_ENTRY_INDEX,		/* u32 */
	TCA_TAPRIO_TC_ENTRY_MAX_SDU,		/* u32 */

	/* add new constants above here */
	__TCA_TAPRIO_TC_ENTRY_CNT,
	TCA_TAPRIO_TC_ENTRY_MAX = (__TCA_TAPRIO_TC_ENTRY_CNT - 1)
};

enum {
	TCA_TAPRIO_ATTR_UNSPEC,
	TCA_TAPRIO_ATTR_PRIOMAP, /* struct tc_mqprio_qopt */
	TCA_TAPRIO_ATTR_SCHED_ENTRY_LIST, /* nested of entry */
	TCA_TAPRIO_ATTR_SCHED_BASE_TIME, /* s64 */
	TCA_TAPRIO_ATTR_SCHED_SINGLE_ENTRY, /* single entry */
	TCA_TAPRIO_ATTR_SCHED_CLOCKID, /* s32 */
	TCA_TAPRIO_PAD,
	TCA_TAPRIO_ATTR_ADMIN_SCHED, /* The admin sched, only used in dump */
	TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME, /* s64 */
	TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME_EXTENSION, /* s64 */
	TCA_TAPRIO_ATTR_FLAGS, /* u32 */
	TCA_TAPRIO_ATTR_TXTIME_DELAY, /* u32 */
	TCA_TAPRIO_ATTR_TC_ENTRY, /* nest */
	__TCA_TAPRIO_ATTR_MAX,
};

#define TCA_TAPRIO_ATTR_MAX (__TCA_TAPRIO_ATTR_MAX - 1)

/* ETS */

#define TCQ_ETS_MAX_BANDS 16

enum {
	TCA_ETS_UNSPEC,
	TCA_ETS_NBANDS,		/* u8 */
	TCA_ETS_NSTRICT,	/* u8 */
	TCA_ETS_QUANTA,		/* nested TCA_ETS_QUANTA_BAND */
	TCA_ETS_QUANTA_BAND,	/* u32 */
	TCA_ETS_PRIOMAP,	/* nested TCA_ETS_PRIOMAP_BAND */
	TCA_ETS_PRIOMAP_BAND,	/* u8 */
	__TCA_ETS_MAX,
};

#define TCA_ETS_MAX (__TCA_ETS_MAX - 1)

#endif

SILENT KILLER Tool