mirror of
https://github.com/commaai/agnos-kernel-sdm845.git
synced 2026-06-14 22:35:05 +08:00
* origin/tmp-bc33b0c:
Linux 4.9-rc4
PCI: designware: Check for iATU unroll support after initializing host
i2c: core: fix NULL pointer dereference under race condition
MIPS: Fix max_low_pfn with disabled highmem
MIPS: Correct MIPS I FP sigcontext layout
MIPS: Fix ISA I/II FP signal context offsets
MIPS: Remove FIR from ISA I FP signal context
MIPS: Fix ISA I FP sigcontext access violation handling
MIPS: Fix FCSR Cause bit handling for correct SIGFPE issue
MIPS: ptrace: Also initialize the FP context on individual FCSR writes
MIPS: dump_tlb: Fix printk continuations
MIPS: Fix __show_regs() output
MIPS: traps: Fix output of show_code
MIPS: traps: Fix output of show_stacktrace
MIPS: traps: Fix output of show_backtrace
MIPS: Fix build of compressed image
MIPS: generic: Fix KASLR for generic kernel.
MIPS: KASLR: Fix handling of NULL FDT
MIPS: Malta: Fixup reboot
MIPS: CPC: Provide default mips_cpc_default_phys_base to ignore CPC
firewire: net: fix fragmented datagram_size off-by-one
firewire: net: guard against rx buffer overflows
sched/core: Remove pointless printout in sched_show_task()
sched/core: Fix oops in sched_show_task()
virtio-gpu: fix vblank events
parisc: Ignore the pkey system calls for now
parisc: Use LINUX_GATEWAY_ADDR define instead of hardcoded value
parisc: Ensure consistent state when switching to kernel stack at syscall entry
parisc: Avoid trashing sr2 and sr3 in LWS code
parisc: use KERN_CONT when printing device inventory
kvm: x86: Check memopp before dereference (CVE-2016-8630)
kvm: nVMX: VMCLEAR an active shadow VMCS after last use
KVM: x86: drop TSC offsetting kvm_x86_ops to fix KVM_GET/SET_CLOCK
nfsd: Fix general protection fault in release_lock_stateid()
svcrdma: backchannel cannot share a page for send and rcv buffers
gpio/mvebu: Use irq_domain_add_linear
fork: Add task stack refcounting sanity check and prevent premature task stack freeing
drm/nouveau/acpi: fix check for power resources support
gpio: of: fix GPIO drivers with multiple gpio_chip for a single node
gpio: GPIO_GET_LINE{HANDLE,EVENT}_IOCTL: Fix file descriptor leak
latent_entropy: Fix wrong gcc code generation with 64 bit variables
gcc-plugins: Export symbols needed by gcc
tpm: remove invalid min length check from tpm_do_selftest()
ovl: fsync after copy-up
ovl: fix get_acl() on tmpfs
ovl: update S_ISGID when setting posix ACLs
virtio_ring: mark vring_dma_dev inline
virtio/vhost: add Jason to list of maintainers
virtio_blk: Delete an unnecessary initialisation in init_vq()
virtio_blk: Use kmalloc_array() in init_vq()
virtio: remove config.c
virtio: console: Unlock vqs while freeing buffers
ringtest: poll for new buffers once before updating event index
ringtest: commonize implementation of poll_avail/poll_used
ringtest: use link-time optimization
virtio: update balloon size in balloon "probe"
virtio_ring: Make interrupt suppression spec compliant
virtio_pci: Limit DMA mask to 44 bits for legacy virtio devices
geneve: avoid using stale geneve socket.
vxlan: avoid using stale vxlan socket.
qede: Fix out-of-bound fastpath memory access
net: phy: dp83848: add dp83822 PHY support
enic: fix rq disable
tipc: fix broadcast link synchronization problem
ibmvnic: Fix missing brackets in init_sub_crq_irqs
ibmvnic: Fix releasing of sub-CRQ IRQs in interrupt context
Revert "ibmvnic: Fix releasing of sub-CRQ IRQs in interrupt context"
arch/powerpc: Update parameters for csum_tcpudp_magic & csum_tcpudp_nofold
net/mlx4_en: Save slave ethtool stats command
net/mlx4_en: Fix potential deadlock in port statistics flow
net/mlx4: Fix firmware command timeout during interrupt test
net/mlx4_core: Do not access comm channel if it has not yet been initialized
net/mlx4_en: Fix panic during reboot
net/mlx4_en: Process all completions in RX rings after port goes up
net/mlx4_en: Resolve dividing by zero in 32-bit system
net/mlx4_core: Change the default value of enable_qos
net/mlx4_core: Avoid setting ports to auto when only one port type is supported
net/mlx4_core: Fix the resource-type enum in res tracker to conform to FW spec
rds: debug messages are enabled by default
ibmvnic: Fix releasing of sub-CRQ IRQs in interrupt context
net: mv643xx_eth: Fetch the phy connection type from DT
Revert "hv_netvsc: report vmbus name in ethtool"
packet: on direct_xmit, limit tso and csum to supported devices
net_sched actions: use nla_parse_nested()
cxgb4: Fix error handling in alloc_uld_rxqs().
IB/mlx4: avoid a -Wmaybe-uninitialize warning
spi: dspi: clear SPI_SR before enable interrupt
ip6_tunnel: Update skb->protocol to ETH_P_IPV6 in ip6_tnl_xmit()
bpf: fix samples to add fake KBUILD_MODNAME
inet: Fix missing return value in inet6_hash
net/mlx5: Avoid passing dma address 0 to firmware
net/mlx5: PCI error recovery health care simulation
net/mlx5: Fix race between PCI error handlers and health work
net/mlx5: Clear health sick bit when starting health poll
net/mlx5: Change the acl enable prototype to return status
net/mlx5e: Unregister netdev before detaching it
net/mlx5e: Choose best nearest LRO timeout
net/mlx5: Correctly initialize last use of flow counters
net/mlx5: Fix autogroups groups num not decreasing
net/mlx5: Keep autogroups list ordered
net/mlx5: Always Query HCA caps after setting them
{net, ib}/mlx5: Make cache line size determination at runtime.
sctp: validate chunk len before actually using it
md: be careful not lot leak internal curr_resync value into metadata. -- (all)
raid1: handle read error also in readonly mode
raid5-cache: correct condition for empty metadata write
sunrpc: fix some missing rq_rbuffer assignments
mlxsw: spectrum_router: Compare only trees which are in use during tree get
mlxsw: spectrum_router: Save requested prefix bitlist when creating tree
regulator: core: silence warning: "VDD1: ramp_delay not set"
regmap: Rename ret variable in regmap_read_poll_timeout
drm/i915: Fix SKL+ 90/270 degree rotated plane coordinate computation
drm/i915: Remove two invalid warns
drm/i915: Rotated view does not need a fence
drm/i915/fbc: fix CFB size calculation for gen8+
drm: i915: Wait for fences on new fb, not old
drm/i915: Clean up DDI DDC/AUX CH sanitation
drm/i915: Respect alternate_aux_channel for all DDI ports
drm/i915/gen9: fix watermarks when using the pipe scaler
drm/i915: Fix mismatched INIT power domain disabling during suspend
drm/i915: fix a read size argument
drm/i915: Use fence_write() from rpm resume
drm/i915/gen9: fix DDB partitioning for multi-screen cases
drm/i915: workaround sparse warning on variable length arrays
drm/i915: keep declarations in i915_drv.h
KVM: x86: fix wbinvd_dirty_mask use-after-free
mtd: mtk: avoid warning in mtk_ecc_encode
mtd: nand: Fix data interface configuration logic
mtd: nand: gpmi: disable the clocks on errors
i40e: fix call of ndo_dflt_bridge_getlink()
net sched filters: fix notification of filter delete with proper handle
i40e: disable MSI-X interrupts if we cannot reserve enough vectors
i40e: Fix configure TCs after initial DCB disable
ixgbe: fix panic when using macvlan with l2-fwd-offload enabled
net: bgmac: fix spelling mistake: "connecton" -> "connection"
flow_dissector: fix vlan tag handling
net: ipv6: Do not consider link state for nexthop validation
net: ipv6: Fix processing of RAs in presence of VRF
kalmia: avoid potential uninitialized variable use
MAINTAINERS: add more people to the MTD maintainer team
macsec: Fix header length if SCI is added if explicitly disabled
MAINTAINERS: add a maintainer for the SPI NOR subsystem
at803x: double check SGMII side autoneg
Revert "at803x: fix suspend/resume for SGMII link"
kvm/x86: Show WRMSR data is in hex
drm/amd/powerplay: fix bug get wrong evv voltage of Polaris.
drm/amdgpu/si_dpm: workaround for SI kickers
sparc64: Handle extremely large kernel TLB range flushes more gracefully.
kvm: nVMX: Fix kernel panics induced by illegal INVEPT/INVVPID types
KVM: document lock orders
mmc: sdhci-msm: Fix error return code in sdhci_msm_probe()
MAINTAINERS: Update qlogic networking drivers
netvsc: fix incorrect receive checksum offloading
scsi: arcmsr: Send SYNCHRONIZE_CACHE command to firmware
scsi: scsi_debug: Fix memory leak if LBP enabled and module is unloaded
udp: fix IP_CHECKSUM handling
sctp: fix the panic caused by route update
doc: update docbook annotations for socket and skb
rocker: fix error return code in rocker_world_check_init()
sunrpc: don't pass on-stack memory to sg_set_buf
vfio/pci: Fix integer overflows, bitmask check
PCI: qcom: Fix pp->dev usage before assignment
drm/radeon/si_dpm: workaround for SI kickers
drm/amdgpu: fix s3 resume back, uvd dpm randomly can't disable.
sparc64: Fix illegal relative branches in hypervisor patched TLB cross-call code.
sparc64: Fix instruction count in comment for __hypervisor_flush_tlb_pending.
drm/dp/mst: Check peer device type before attempting EDID read
drm/dp/mst: Clear port->pdt when tearing down the i2c adapter
drm/fb-helper: Keep references for the current set of used connectors
drm: Don't force all planes to be added to the state due to zpos
drm/fb-helper: Fix connector ref leak on error
KVM: fix OOPS on flush_work
KVM: s390: Fix STHYI buffer alignment for diag224
KVM: MIPS: Precalculate MMIO load resume PC
KVM: MIPS: Make ERET handle ERL before EXL
KVM: MIPS: Fix lazy user ASID regenerate for SMP
spi: fsl-espi: avoid processing uninitalized data on error
drm/fb-helper: Don't call dirty callback for untouched clips
drm: Release reference from blob lookup after replacing property
mac80211: fix some sphinx warnings
cfg80211: process events caused by suspend before suspending
sparc64: Handle extremely large kernel TSB range flushes sanely.
sparc: Handle negative offsets in arch_jump_label_transform
sparc64: Fix illegal relative branches in hypervisor patched TLB code.
drm/radeon: drop register readback in cayman_cp_int_cntl_setup
drm/amdgpu/vce3: only enable 3 rings on new enough firmware (v2)
mmc: dw_mmc-pltfm: fix the potential NULL pointer dereference
sparc64: Delete now unused user copy fixup functions.
sparc64: Delete now unused user copy assembler helpers.
sparc64: Convert U3copy_{from,to}_user to accurate exception reporting.
sparc64: Convert NG2copy_{from,to}_user to accurate exception reporting.
sparc64: Convert NGcopy_{from,to}_user to accurate exception reporting.
sparc64: Convert NG4copy_{from,to}_user to accurate exception reporting.
scsi: megaraid_sas: Fix data integrity failure for JBOD (passthrough) devices
Input: psmouse - cleanup Focaltech code
md: report 'write_pending' state when array in sync
md/raid5: write an empty meta-block when creating log super-block
md/raid5: initialize next_checkpoint field before use
RAID10: ignore discard error
RAID1: ignore discard error
drm/amdgpu: fix fence slab teardown
drm/amdgpu: update kernel-doc for some functions
drm/amdgpu: fix a vm_flush fence leak
drm/amdgpu: fix sched fence slab teardown
Revert "drm/radeon: fix DP link training issue with second 4K monitor"
drm/amdgpu/dpm: flush any thermal work on fini
drm/amdgpu: cancel reset work on fini
nfsd: move blocked lock handling under a dedicated spinlock
sparc64: Convert U1copy_{from,to}_user to accurate exception reporting.
sparc64: Convert GENcopy_{from,to}_user to accurate exception reporting.
sparc64: Convert copy_in_user to accurate exception reporting.
sparc64: Prepare to move to more saner user copy exception handling.
sparc64: Delete __ret_efault.
sparc32: Fix old style declaration GCC warnings
sparc64: Fix old style declaration GCC warnings
sparc64: Setup a scheduling domain for highest level cache.
spi: mark device nodes only in case of successful instantiation
btrfs: fix WARNING in btrfs_select_ref_head()
Btrfs: remove some no-op casts
btrfs: pass correct args to btrfs_async_run_delayed_refs()
btrfs: make file clone aware of fatal signals
btrfs: qgroup: Prevent qgroup->reserved from going subzero
net: sctp, forbid negative length
net: fec: Call swap_buffer() prior to IP header alignment
ipv6: do not increment mac header when it's unset
bnx2x: Use the correct divisor value for PHC clock readings.
qede: Fix incorrrect usage of APIs for un-mapping DMA memory
qed: Zero-out the buffer paased to dcbx_query() API
qede: Reconfigure rss indirection direction table when rss count is updated
qed*: Reduce the memory footprint for Rx path
qede: Loopback implementation should ignore the normal traffic
qede: Do not allow RSS config for 100G devices
qede: get_channels() need to populate max tx/rx coalesce values
ipv4: use the right lock for ping_group_range
net: dsa: bcm_sf2: Do not rely on kexec_in_progress
Revert "kexec: Export kexec_in_progress to modules"
netns: revert "netns: avoid disabling irq for netns id"
ipv6: fix a potential deadlock in do_ipv6_setsockopt()
drm/amd/powerplay: don't give up if DPM is already running
drm/amd/powerplay: fix static checker warning in process_pptables_v1_0.c
drm/amdgpu: avoid drm error log during S3 on RHEL7.3
drm/amdgpu: explicitly set pg_flags for ST
drm/amdgpu/st: move ATC CG golden init from gfx to mc
drm/amd/amdgpu: expose max engine and memory clock for powerplay enabled case
drm/amdgpu: move atom scratch register save/restore to common code
drm/amdgpu: drop atom scratch save/restore in gpu reset
drm/radeon/si_dpm: Limit clocks on HD86xx part
drm/amdgpu/powerplay/smu7: fix static checker warning
batman-adv: fix splat on disabling an interface
kexec: Export kexec_in_progress to modules
ipv4: disable BH in set_ping_group_range()
udp: must lock the socket in udp_disconnect()
net: dsa: bcm_sf2: Prevent GPHY shutdown for kexec'd kernels
bpf, test: fix ld_abs + vlan push/pop stress test
net: add recursion limit to GRO
ipv6: properly prevent temp_prefered_lft sysctl race
netfilter: fix nf_queue handling
netfilter: conntrack: restart gc immediately if GC_MAX_EVICTS is reached
stmmac: display the descriptors if DES0 = 0
net/ncsi: Improve HNCDSC AEN handler
net/ncsi: Choose hot channel as active one if necessary
net/ncsi: Fix stale link state of inactive channels on failover
net/ncsi: Avoid if statements in ncsi_suspend_channel()
net/sched: act_mirred: Use passed lastuse argument
mlxsw: pci: Fix reset wait for SwitchX2
mlxsw: switchx2: Fix ethernet port initialization
mlxsw: spectrum_router: Make mlxsw_sp_router_fib4_del return void and remove warn
mlxsw: spectrum_router: Use correct tree index for binding
drm/imx: ipuv3-plane: disable local alpha for planes without alpha channel
drm/imx: ipuv3-plane: make sure x/y offsets are even in case of chroma subsampling
Bluetooth: btwilink: Fix probe return value
stmmac: fix and review the ptp registration.
Input: i8042 - add XMG C504 to keyboard reset table
Bluetooth: Fix append max 11 bytes of name to scan rsp data
netfilter: x_tables: suppress kmemcheck warning
tcp: do not export sysctl_tcp_low_latency
rtnetlink: Add rtnexthop offload flag to compare mask
switchdev: Execute bridge ndos only for bridge ports
net: core: Correctly iterate over lower adjacency list
flow_dissector: Check skb for VLAN only if skb specified.
ARM: wire up new pkey syscalls
ARM: fix oops when using older ARMv4T CPUs
qed: Use list_move_tail instead of list_del/list_add_tail
rocker: fix maybe-uninitialized warning
net/hyperv: avoid uninitialized variable
net: bcm63xx: avoid referencing uninitialized variable
soreuseport: do not export reuseport_add_sock()
ibmvnic: Update MTU after device initialization
ibmvnic: Fix GFP_KERNEL allocation in interrupt context
ibmvnic: Driver Version 1.0.1
bridge: multicast: restore perm router ports on multicast enable
netfilter: nf_tables: avoid uninitialized variable warning
tcp: Remove unused but set variable
cxgb4: Fix number of queue sets corssing the limit
ipv4: Remove unused but set variable
dwc_eth_qos: enable flow control by default
dwc_eth_qos: do not clear pause flags from phy_device->supported
net/hsr: Remove unused but set variable
bnx2: fix locking when netconsole is used
drm/imx: ipuv3-plane: Access old u/vbo properly in ->atomic_check for YU12/YV12
drm/imx: drm_dev_alloc() returns error pointers
drm/imx: ipuv3-plane: Skip setting u/vbo only when we don't need modeset
drm/imx: ipuv3-plane: Switch EBA buffer only when we don't need modeset
net: dsa: bcm_sf2: Fix module autoload for OF registration
net: dsa: b53: Fix module autoload
net: hisilicon: Fix hns_mdio module autoload for OF registration
net: qcom/emac: Fix module autoload for OF registration
net: hns: Fix hns_dsaf module autoload for OF registration
net: ethernet: nb8800: Fix module autoload
net: nps_enet: Fix module autoload
netfilter: nft_range: validate operation netlink attribute
netfilter: nft_exthdr: fix error handling in nft_exthdr_init()
netfilter: nf_tables: underflow in nft_parse_u32_check()
netfilter: nft_hash: add missing NFTA_HASH_OFFSET's nla_policy
netfilter: xt_ipcomp: add "ip[6]t_ipcomp" module alias name
netfilter: xt_NFLOG: fix unexpected truncated packet
netfilter: conntrack: remove obsolete sysctl (nf_conntrack_events_retry_timeout)
netfilter: nft_dynset: fix element timeout for HZ != 1000
netfilter: xt_hashlimit: Add missing ULL suffixes for 64-bit constants
cxgb4: fix memory leak of qe on error exit path
net: pktgen: remove rcu locking in pktgen_change_name()
net: Require exact match for TCP socket lookups if dif is l3mdev
mac80211: move struct aead_req off the stack
[media] radio-bcm2048: don't ignore errors
batman-adv: Add BATADV_DBG_TP_METER to BATADV_DBG_ALL
batman-adv: Modify neigh_list only with rcu-list functions
Btrfs: kill BUG_ON in do_relocation
gpu: ipu-v3: Use ERR_CAST instead of ERR_PTR(PTR_ERR())
drm/imx: hide an unused label
vmxnet3: avoid assumption about invalid dma_pa in vmxnet3_set_mc()
stmmac: fix an error code in stmmac_ptp_register()
net: qcom/emac: disable interrupts before calling phy_disconnect
r8169: set coherent DMA mask as well as streaming DMA mask
net: asix: Avoid looping when the device does not respond
ethtool: silence warning on bit loss
[media] pctv452e: fix semicolon.cocci warnings
[media] flexcop-usb: don't use stack for DMA
[media] stk-webcam: don't use stack for DMA
[media] s2255drv: don't use stack for DMA
[media] cpia2_usb: don't use stack for DMA
[media] digitv: handle error code on RC query
[media] dw2102: return error if su3000_power_ctrl() fails
[media] nova-t-usb2: handle error code on RC query
[media] technisat-usb2: use DMA buffers for I2C transfers
[media] pctv452e: don't call BUG_ON() on non-fatal error
[media] pctv452e: don't do DMA on stack
[media] nova-t-usb2: don't do DMA on stack
[media] gp8psk: don't go past the buffer size
[media] gp8psk: don't do DMA on stack
[media] dtv5100: don't do DMA on stack
[media] dtt200u: handle USB control message errors
[media] dtt200u: don't do DMA on stack
[media] dtt200u-fe: handle errors on USB control messages
[media] dtt200u-fe: don't do DMA on stack
[media] dtt200u-fe: don't keep waiting for lock at set_frontend()
[media] digitv: don't do DMA on stack
[media] dibusb: handle error code on RC query
[media] dibusb: don't do DMA on stack
[media] dib0700_core: don't use stack on I2C reads
[media] dib0700: be sure that dib0700_ctrl_rd() users can do DMA
[media] cxusb: don't do DMA on stack
[media] cinergyT2-fe: don't do DMA on stack
[media] cinergyT2-fe: cache stats at cinergyt2_fe_read_status()
[media] cinergyT2-core: handle error code on RC query
[media] cinergyT2-core: don't do DMA on stack
[media] af9005: don't do DMA on stack
net/mlx4_en: fixup xdp tx irq to match rx
qed: Additional work toward cleaning C=1
qed*: Fix Kconfig dependencies with INFINIBAND_QEDR
qed: Fix static checker warning.
IPv6: fix DESYNC_FACTOR
IPv6: Drop the temporary address regen_timer
IB/ipoib: move back IB LL address into the hard header
Documentation/networking: update git urls to use https over http
net: wan: slic_ds26522: Allow driver to built if COMPILE_TEST is enabled
net: wan: slic_ds26522: Export OF module alias information
net: wan: slic_ds26522: add SPI device ID table to fix module autoload
ipv6: correctly add local routes when lo goes up
ip6_tunnel: fix ip6_tnl_lookup
afs: call->operation_ID sometimes used as __be32 sometimes as u32
regmap: include <linux/delay.h> from include/linux/regmap.h
ath6kl: add Dell OEM SDIO I/O for the Venue 8 Pro
Revert "ath9k_hw: implement temperature compensation support for AR9003+"
ath10k: cache calibration data when the core is stopped
rtlwifi: Fix regression caused by commit d86e647688
rxrpc: Fix checking of error from ip6_route_output()
rxrpc: Fix checker warning by not passing always-zero value to ERR_PTR()
afs: unmapping the wrong buffer
Bluetooth: hci_bcm: Fix autosuspend PM for Lenovo ThinkPad 8
mac80211: fix CMD_FRAME for AP_VLAN
mac80211: validate DA/SA during A-MSDU decapsulation
cfg80211: add ability to check DA/SA in A-MSDU decapsulation
cfg80211: let ieee80211_amsdu_to_8023s() take only header-less SKB
mac80211: discard multicast and 4-addr A-MSDUs
rtl8xxxu: Fix rtl8192eu driver reload issue
rtl8xxxu: Fix rtl8723bu driver reload issue
rtl8xxxu: Fix big-endian problem reporting mactime
rtl8xxxu: Fix memory leak in handling rxdesc16 packets
wlcore: sdio: drop kfree for memory allocated with devm_kzalloc
Conflicts:
net/ipv6/route.c
Signed-off-by: Channagoud Kadabi <ckadabi@codeaurora.org>
Change-Id: I217e64cee0157f80c45e63acd3311e138e33b949
686 lines
16 KiB
C
686 lines
16 KiB
C
#ifndef _UAPI__LINUX_RTNETLINK_H
|
|
#define _UAPI__LINUX_RTNETLINK_H
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/netlink.h>
|
|
#include <linux/if_link.h>
|
|
#include <linux/if_addr.h>
|
|
#include <linux/neighbour.h>
|
|
|
|
/* rtnetlink families. Values up to 127 are reserved for real address
|
|
* families, values above 128 may be used arbitrarily.
|
|
*/
|
|
#define RTNL_FAMILY_IPMR 128
|
|
#define RTNL_FAMILY_IP6MR 129
|
|
#define RTNL_FAMILY_MAX 129
|
|
|
|
/****
|
|
* Routing/neighbour discovery messages.
|
|
****/
|
|
|
|
/* Types of messages */
|
|
|
|
enum {
|
|
RTM_BASE = 16,
|
|
#define RTM_BASE RTM_BASE
|
|
|
|
RTM_NEWLINK = 16,
|
|
#define RTM_NEWLINK RTM_NEWLINK
|
|
RTM_DELLINK,
|
|
#define RTM_DELLINK RTM_DELLINK
|
|
RTM_GETLINK,
|
|
#define RTM_GETLINK RTM_GETLINK
|
|
RTM_SETLINK,
|
|
#define RTM_SETLINK RTM_SETLINK
|
|
|
|
RTM_NEWADDR = 20,
|
|
#define RTM_NEWADDR RTM_NEWADDR
|
|
RTM_DELADDR,
|
|
#define RTM_DELADDR RTM_DELADDR
|
|
RTM_GETADDR,
|
|
#define RTM_GETADDR RTM_GETADDR
|
|
|
|
RTM_NEWROUTE = 24,
|
|
#define RTM_NEWROUTE RTM_NEWROUTE
|
|
RTM_DELROUTE,
|
|
#define RTM_DELROUTE RTM_DELROUTE
|
|
RTM_GETROUTE,
|
|
#define RTM_GETROUTE RTM_GETROUTE
|
|
|
|
RTM_NEWNEIGH = 28,
|
|
#define RTM_NEWNEIGH RTM_NEWNEIGH
|
|
RTM_DELNEIGH,
|
|
#define RTM_DELNEIGH RTM_DELNEIGH
|
|
RTM_GETNEIGH,
|
|
#define RTM_GETNEIGH RTM_GETNEIGH
|
|
|
|
RTM_NEWRULE = 32,
|
|
#define RTM_NEWRULE RTM_NEWRULE
|
|
RTM_DELRULE,
|
|
#define RTM_DELRULE RTM_DELRULE
|
|
RTM_GETRULE,
|
|
#define RTM_GETRULE RTM_GETRULE
|
|
|
|
RTM_NEWQDISC = 36,
|
|
#define RTM_NEWQDISC RTM_NEWQDISC
|
|
RTM_DELQDISC,
|
|
#define RTM_DELQDISC RTM_DELQDISC
|
|
RTM_GETQDISC,
|
|
#define RTM_GETQDISC RTM_GETQDISC
|
|
|
|
RTM_NEWTCLASS = 40,
|
|
#define RTM_NEWTCLASS RTM_NEWTCLASS
|
|
RTM_DELTCLASS,
|
|
#define RTM_DELTCLASS RTM_DELTCLASS
|
|
RTM_GETTCLASS,
|
|
#define RTM_GETTCLASS RTM_GETTCLASS
|
|
|
|
RTM_NEWTFILTER = 44,
|
|
#define RTM_NEWTFILTER RTM_NEWTFILTER
|
|
RTM_DELTFILTER,
|
|
#define RTM_DELTFILTER RTM_DELTFILTER
|
|
RTM_GETTFILTER,
|
|
#define RTM_GETTFILTER RTM_GETTFILTER
|
|
|
|
RTM_NEWACTION = 48,
|
|
#define RTM_NEWACTION RTM_NEWACTION
|
|
RTM_DELACTION,
|
|
#define RTM_DELACTION RTM_DELACTION
|
|
RTM_GETACTION,
|
|
#define RTM_GETACTION RTM_GETACTION
|
|
|
|
RTM_NEWPREFIX = 52,
|
|
#define RTM_NEWPREFIX RTM_NEWPREFIX
|
|
|
|
RTM_GETMULTICAST = 58,
|
|
#define RTM_GETMULTICAST RTM_GETMULTICAST
|
|
|
|
RTM_GETANYCAST = 62,
|
|
#define RTM_GETANYCAST RTM_GETANYCAST
|
|
|
|
RTM_NEWNEIGHTBL = 64,
|
|
#define RTM_NEWNEIGHTBL RTM_NEWNEIGHTBL
|
|
RTM_GETNEIGHTBL = 66,
|
|
#define RTM_GETNEIGHTBL RTM_GETNEIGHTBL
|
|
RTM_SETNEIGHTBL,
|
|
#define RTM_SETNEIGHTBL RTM_SETNEIGHTBL
|
|
|
|
RTM_NEWNDUSEROPT = 68,
|
|
#define RTM_NEWNDUSEROPT RTM_NEWNDUSEROPT
|
|
|
|
RTM_NEWADDRLABEL = 72,
|
|
#define RTM_NEWADDRLABEL RTM_NEWADDRLABEL
|
|
RTM_DELADDRLABEL,
|
|
#define RTM_DELADDRLABEL RTM_DELADDRLABEL
|
|
RTM_GETADDRLABEL,
|
|
#define RTM_GETADDRLABEL RTM_GETADDRLABEL
|
|
|
|
RTM_GETDCB = 78,
|
|
#define RTM_GETDCB RTM_GETDCB
|
|
RTM_SETDCB,
|
|
#define RTM_SETDCB RTM_SETDCB
|
|
|
|
RTM_NEWNETCONF = 80,
|
|
#define RTM_NEWNETCONF RTM_NEWNETCONF
|
|
RTM_GETNETCONF = 82,
|
|
#define RTM_GETNETCONF RTM_GETNETCONF
|
|
|
|
RTM_NEWMDB = 84,
|
|
#define RTM_NEWMDB RTM_NEWMDB
|
|
RTM_DELMDB = 85,
|
|
#define RTM_DELMDB RTM_DELMDB
|
|
RTM_GETMDB = 86,
|
|
#define RTM_GETMDB RTM_GETMDB
|
|
|
|
RTM_NEWNSID = 88,
|
|
#define RTM_NEWNSID RTM_NEWNSID
|
|
RTM_DELNSID = 89,
|
|
#define RTM_DELNSID RTM_DELNSID
|
|
RTM_GETNSID = 90,
|
|
#define RTM_GETNSID RTM_GETNSID
|
|
|
|
RTM_NEWSTATS = 92,
|
|
#define RTM_NEWSTATS RTM_NEWSTATS
|
|
RTM_GETSTATS = 94,
|
|
#define RTM_GETSTATS RTM_GETSTATS
|
|
|
|
__RTM_MAX,
|
|
#define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
|
|
};
|
|
|
|
#define RTM_NR_MSGTYPES (RTM_MAX + 1 - RTM_BASE)
|
|
#define RTM_NR_FAMILIES (RTM_NR_MSGTYPES >> 2)
|
|
#define RTM_FAM(cmd) (((cmd) - RTM_BASE) >> 2)
|
|
|
|
/*
|
|
Generic structure for encapsulation of optional route information.
|
|
It is reminiscent of sockaddr, but with sa_family replaced
|
|
with attribute type.
|
|
*/
|
|
|
|
struct rtattr {
|
|
unsigned short rta_len;
|
|
unsigned short rta_type;
|
|
};
|
|
|
|
/* Macros to handle rtattributes */
|
|
|
|
#define RTA_ALIGNTO 4U
|
|
#define RTA_ALIGN(len) ( ((len)+RTA_ALIGNTO-1) & ~(RTA_ALIGNTO-1) )
|
|
#define RTA_OK(rta,len) ((len) >= (int)sizeof(struct rtattr) && \
|
|
(rta)->rta_len >= sizeof(struct rtattr) && \
|
|
(rta)->rta_len <= (len))
|
|
#define RTA_NEXT(rta,attrlen) ((attrlen) -= RTA_ALIGN((rta)->rta_len), \
|
|
(struct rtattr*)(((char*)(rta)) + RTA_ALIGN((rta)->rta_len)))
|
|
#define RTA_LENGTH(len) (RTA_ALIGN(sizeof(struct rtattr)) + (len))
|
|
#define RTA_SPACE(len) RTA_ALIGN(RTA_LENGTH(len))
|
|
#define RTA_DATA(rta) ((void*)(((char*)(rta)) + RTA_LENGTH(0)))
|
|
#define RTA_PAYLOAD(rta) ((int)((rta)->rta_len) - RTA_LENGTH(0))
|
|
|
|
|
|
|
|
|
|
/******************************************************************************
|
|
* Definitions used in routing table administration.
|
|
****/
|
|
|
|
struct rtmsg {
|
|
unsigned char rtm_family;
|
|
unsigned char rtm_dst_len;
|
|
unsigned char rtm_src_len;
|
|
unsigned char rtm_tos;
|
|
|
|
unsigned char rtm_table; /* Routing table id */
|
|
unsigned char rtm_protocol; /* Routing protocol; see below */
|
|
unsigned char rtm_scope; /* See below */
|
|
unsigned char rtm_type; /* See below */
|
|
|
|
unsigned rtm_flags;
|
|
};
|
|
|
|
/* rtm_type */
|
|
|
|
enum {
|
|
RTN_UNSPEC,
|
|
RTN_UNICAST, /* Gateway or direct route */
|
|
RTN_LOCAL, /* Accept locally */
|
|
RTN_BROADCAST, /* Accept locally as broadcast,
|
|
send as broadcast */
|
|
RTN_ANYCAST, /* Accept locally as broadcast,
|
|
but send as unicast */
|
|
RTN_MULTICAST, /* Multicast route */
|
|
RTN_BLACKHOLE, /* Drop */
|
|
RTN_UNREACHABLE, /* Destination is unreachable */
|
|
RTN_PROHIBIT, /* Administratively prohibited */
|
|
RTN_THROW, /* Not in this table */
|
|
RTN_NAT, /* Translate this address */
|
|
RTN_XRESOLVE, /* Use external resolver */
|
|
__RTN_MAX
|
|
};
|
|
|
|
#define RTN_MAX (__RTN_MAX - 1)
|
|
|
|
|
|
/* rtm_protocol */
|
|
|
|
#define RTPROT_UNSPEC 0
|
|
#define RTPROT_REDIRECT 1 /* Route installed by ICMP redirects;
|
|
not used by current IPv4 */
|
|
#define RTPROT_KERNEL 2 /* Route installed by kernel */
|
|
#define RTPROT_BOOT 3 /* Route installed during boot */
|
|
#define RTPROT_STATIC 4 /* Route installed by administrator */
|
|
|
|
/* Values of protocol >= RTPROT_STATIC are not interpreted by kernel;
|
|
they are just passed from user and back as is.
|
|
It will be used by hypothetical multiple routing daemons.
|
|
Note that protocol values should be standardized in order to
|
|
avoid conflicts.
|
|
*/
|
|
|
|
#define RTPROT_GATED 8 /* Apparently, GateD */
|
|
#define RTPROT_RA 9 /* RDISC/ND router advertisements */
|
|
#define RTPROT_MRT 10 /* Merit MRT */
|
|
#define RTPROT_ZEBRA 11 /* Zebra */
|
|
#define RTPROT_BIRD 12 /* BIRD */
|
|
#define RTPROT_DNROUTED 13 /* DECnet routing daemon */
|
|
#define RTPROT_XORP 14 /* XORP */
|
|
#define RTPROT_NTK 15 /* Netsukuku */
|
|
#define RTPROT_DHCP 16 /* DHCP client */
|
|
#define RTPROT_MROUTED 17 /* Multicast daemon */
|
|
#define RTPROT_BABEL 42 /* Babel daemon */
|
|
|
|
/* rtm_scope
|
|
|
|
Really it is not scope, but sort of distance to the destination.
|
|
NOWHERE are reserved for not existing destinations, HOST is our
|
|
local addresses, LINK are destinations, located on directly attached
|
|
link and UNIVERSE is everywhere in the Universe.
|
|
|
|
Intermediate values are also possible f.e. interior routes
|
|
could be assigned a value between UNIVERSE and LINK.
|
|
*/
|
|
|
|
enum rt_scope_t {
|
|
RT_SCOPE_UNIVERSE=0,
|
|
/* User defined values */
|
|
RT_SCOPE_SITE=200,
|
|
RT_SCOPE_LINK=253,
|
|
RT_SCOPE_HOST=254,
|
|
RT_SCOPE_NOWHERE=255
|
|
};
|
|
|
|
/* rtm_flags */
|
|
|
|
#define RTM_F_NOTIFY 0x100 /* Notify user of route change */
|
|
#define RTM_F_CLONED 0x200 /* This route is cloned */
|
|
#define RTM_F_EQUALIZE 0x400 /* Multipath equalizer: NI */
|
|
#define RTM_F_PREFIX 0x800 /* Prefix addresses */
|
|
#define RTM_F_LOOKUP_TABLE 0x1000 /* set rtm_table to FIB lookup result */
|
|
|
|
/* Reserved table identifiers */
|
|
|
|
enum rt_class_t {
|
|
RT_TABLE_UNSPEC=0,
|
|
/* User defined values */
|
|
RT_TABLE_COMPAT=252,
|
|
RT_TABLE_DEFAULT=253,
|
|
RT_TABLE_MAIN=254,
|
|
RT_TABLE_LOCAL=255,
|
|
RT_TABLE_MAX=0xFFFFFFFF
|
|
};
|
|
|
|
|
|
/* Routing message attributes */
|
|
|
|
enum rtattr_type_t {
|
|
RTA_UNSPEC,
|
|
RTA_DST,
|
|
RTA_SRC,
|
|
RTA_IIF,
|
|
RTA_OIF,
|
|
RTA_GATEWAY,
|
|
RTA_PRIORITY,
|
|
RTA_PREFSRC,
|
|
RTA_METRICS,
|
|
RTA_MULTIPATH,
|
|
RTA_PROTOINFO, /* no longer used */
|
|
RTA_FLOW,
|
|
RTA_CACHEINFO,
|
|
RTA_SESSION, /* no longer used */
|
|
RTA_MP_ALGO, /* no longer used */
|
|
RTA_TABLE,
|
|
RTA_MARK,
|
|
RTA_MFC_STATS,
|
|
RTA_UID,
|
|
RTA_VIA,
|
|
RTA_NEWDST,
|
|
RTA_PREF,
|
|
RTA_ENCAP_TYPE,
|
|
RTA_ENCAP,
|
|
RTA_EXPIRES,
|
|
RTA_PAD,
|
|
__RTA_MAX
|
|
};
|
|
|
|
#define RTA_MAX (__RTA_MAX - 1)
|
|
|
|
#define RTM_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct rtmsg))))
|
|
#define RTM_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct rtmsg))
|
|
|
|
/* RTM_MULTIPATH --- array of struct rtnexthop.
|
|
*
|
|
* "struct rtnexthop" describes all necessary nexthop information,
|
|
* i.e. parameters of path to a destination via this nexthop.
|
|
*
|
|
* At the moment it is impossible to set different prefsrc, mtu, window
|
|
* and rtt for different paths from multipath.
|
|
*/
|
|
|
|
struct rtnexthop {
|
|
unsigned short rtnh_len;
|
|
unsigned char rtnh_flags;
|
|
unsigned char rtnh_hops;
|
|
int rtnh_ifindex;
|
|
};
|
|
|
|
/* rtnh_flags */
|
|
|
|
#define RTNH_F_DEAD 1 /* Nexthop is dead (used by multipath) */
|
|
#define RTNH_F_PERVASIVE 2 /* Do recursive gateway lookup */
|
|
#define RTNH_F_ONLINK 4 /* Gateway is forced on link */
|
|
#define RTNH_F_OFFLOAD 8 /* offloaded route */
|
|
#define RTNH_F_LINKDOWN 16 /* carrier-down on nexthop */
|
|
|
|
#define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN | RTNH_F_OFFLOAD)
|
|
|
|
/* Macros to handle hexthops */
|
|
|
|
#define RTNH_ALIGNTO 4
|
|
#define RTNH_ALIGN(len) ( ((len)+RTNH_ALIGNTO-1) & ~(RTNH_ALIGNTO-1) )
|
|
#define RTNH_OK(rtnh,len) ((rtnh)->rtnh_len >= sizeof(struct rtnexthop) && \
|
|
((int)(rtnh)->rtnh_len) <= (len))
|
|
#define RTNH_NEXT(rtnh) ((struct rtnexthop*)(((char*)(rtnh)) + RTNH_ALIGN((rtnh)->rtnh_len)))
|
|
#define RTNH_LENGTH(len) (RTNH_ALIGN(sizeof(struct rtnexthop)) + (len))
|
|
#define RTNH_SPACE(len) RTNH_ALIGN(RTNH_LENGTH(len))
|
|
#define RTNH_DATA(rtnh) ((struct rtattr*)(((char*)(rtnh)) + RTNH_LENGTH(0)))
|
|
|
|
/* RTA_VIA */
|
|
struct rtvia {
|
|
__kernel_sa_family_t rtvia_family;
|
|
__u8 rtvia_addr[0];
|
|
};
|
|
|
|
/* RTM_CACHEINFO */
|
|
|
|
struct rta_cacheinfo {
|
|
__u32 rta_clntref;
|
|
__u32 rta_lastuse;
|
|
__s32 rta_expires;
|
|
__u32 rta_error;
|
|
__u32 rta_used;
|
|
|
|
#define RTNETLINK_HAVE_PEERINFO 1
|
|
__u32 rta_id;
|
|
__u32 rta_ts;
|
|
__u32 rta_tsage;
|
|
};
|
|
|
|
/* RTM_METRICS --- array of struct rtattr with types of RTAX_* */
|
|
|
|
enum {
|
|
RTAX_UNSPEC,
|
|
#define RTAX_UNSPEC RTAX_UNSPEC
|
|
RTAX_LOCK,
|
|
#define RTAX_LOCK RTAX_LOCK
|
|
RTAX_MTU,
|
|
#define RTAX_MTU RTAX_MTU
|
|
RTAX_WINDOW,
|
|
#define RTAX_WINDOW RTAX_WINDOW
|
|
RTAX_RTT,
|
|
#define RTAX_RTT RTAX_RTT
|
|
RTAX_RTTVAR,
|
|
#define RTAX_RTTVAR RTAX_RTTVAR
|
|
RTAX_SSTHRESH,
|
|
#define RTAX_SSTHRESH RTAX_SSTHRESH
|
|
RTAX_CWND,
|
|
#define RTAX_CWND RTAX_CWND
|
|
RTAX_ADVMSS,
|
|
#define RTAX_ADVMSS RTAX_ADVMSS
|
|
RTAX_REORDERING,
|
|
#define RTAX_REORDERING RTAX_REORDERING
|
|
RTAX_HOPLIMIT,
|
|
#define RTAX_HOPLIMIT RTAX_HOPLIMIT
|
|
RTAX_INITCWND,
|
|
#define RTAX_INITCWND RTAX_INITCWND
|
|
RTAX_FEATURES,
|
|
#define RTAX_FEATURES RTAX_FEATURES
|
|
RTAX_RTO_MIN,
|
|
#define RTAX_RTO_MIN RTAX_RTO_MIN
|
|
RTAX_INITRWND,
|
|
#define RTAX_INITRWND RTAX_INITRWND
|
|
RTAX_QUICKACK,
|
|
#define RTAX_QUICKACK RTAX_QUICKACK
|
|
RTAX_CC_ALGO,
|
|
#define RTAX_CC_ALGO RTAX_CC_ALGO
|
|
__RTAX_MAX
|
|
};
|
|
|
|
#define RTAX_MAX (__RTAX_MAX - 1)
|
|
|
|
#define RTAX_FEATURE_ECN (1 << 0)
|
|
#define RTAX_FEATURE_SACK (1 << 1)
|
|
#define RTAX_FEATURE_TIMESTAMP (1 << 2)
|
|
#define RTAX_FEATURE_ALLFRAG (1 << 3)
|
|
|
|
#define RTAX_FEATURE_MASK (RTAX_FEATURE_ECN | RTAX_FEATURE_SACK | \
|
|
RTAX_FEATURE_TIMESTAMP | RTAX_FEATURE_ALLFRAG)
|
|
|
|
struct rta_session {
|
|
__u8 proto;
|
|
__u8 pad1;
|
|
__u16 pad2;
|
|
|
|
union {
|
|
struct {
|
|
__u16 sport;
|
|
__u16 dport;
|
|
} ports;
|
|
|
|
struct {
|
|
__u8 type;
|
|
__u8 code;
|
|
__u16 ident;
|
|
} icmpt;
|
|
|
|
__u32 spi;
|
|
} u;
|
|
};
|
|
|
|
struct rta_mfc_stats {
|
|
__u64 mfcs_packets;
|
|
__u64 mfcs_bytes;
|
|
__u64 mfcs_wrong_if;
|
|
};
|
|
|
|
/****
|
|
* General form of address family dependent message.
|
|
****/
|
|
|
|
struct rtgenmsg {
|
|
unsigned char rtgen_family;
|
|
};
|
|
|
|
/*****************************************************************
|
|
* Link layer specific messages.
|
|
****/
|
|
|
|
/* struct ifinfomsg
|
|
* passes link level specific information, not dependent
|
|
* on network protocol.
|
|
*/
|
|
|
|
struct ifinfomsg {
|
|
unsigned char ifi_family;
|
|
unsigned char __ifi_pad;
|
|
unsigned short ifi_type; /* ARPHRD_* */
|
|
int ifi_index; /* Link index */
|
|
unsigned ifi_flags; /* IFF_* flags */
|
|
unsigned ifi_change; /* IFF_* change mask */
|
|
};
|
|
|
|
/********************************************************************
|
|
* prefix information
|
|
****/
|
|
|
|
struct prefixmsg {
|
|
unsigned char prefix_family;
|
|
unsigned char prefix_pad1;
|
|
unsigned short prefix_pad2;
|
|
int prefix_ifindex;
|
|
unsigned char prefix_type;
|
|
unsigned char prefix_len;
|
|
unsigned char prefix_flags;
|
|
unsigned char prefix_pad3;
|
|
};
|
|
|
|
enum
|
|
{
|
|
PREFIX_UNSPEC,
|
|
PREFIX_ADDRESS,
|
|
PREFIX_CACHEINFO,
|
|
__PREFIX_MAX
|
|
};
|
|
|
|
#define PREFIX_MAX (__PREFIX_MAX - 1)
|
|
|
|
struct prefix_cacheinfo {
|
|
__u32 preferred_time;
|
|
__u32 valid_time;
|
|
};
|
|
|
|
|
|
/*****************************************************************
|
|
* Traffic control messages.
|
|
****/
|
|
|
|
struct tcmsg {
|
|
unsigned char tcm_family;
|
|
unsigned char tcm__pad1;
|
|
unsigned short tcm__pad2;
|
|
int tcm_ifindex;
|
|
__u32 tcm_handle;
|
|
__u32 tcm_parent;
|
|
__u32 tcm_info;
|
|
};
|
|
|
|
enum {
|
|
TCA_UNSPEC,
|
|
TCA_KIND,
|
|
TCA_OPTIONS,
|
|
TCA_STATS,
|
|
TCA_XSTATS,
|
|
TCA_RATE,
|
|
TCA_FCNT,
|
|
TCA_STATS2,
|
|
TCA_STAB,
|
|
TCA_PAD,
|
|
__TCA_MAX
|
|
};
|
|
|
|
#define TCA_MAX (__TCA_MAX - 1)
|
|
|
|
#define TCA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcmsg))))
|
|
#define TCA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcmsg))
|
|
|
|
/********************************************************************
|
|
* Neighbor Discovery userland options
|
|
****/
|
|
|
|
struct nduseroptmsg {
|
|
unsigned char nduseropt_family;
|
|
unsigned char nduseropt_pad1;
|
|
unsigned short nduseropt_opts_len; /* Total length of options */
|
|
int nduseropt_ifindex;
|
|
__u8 nduseropt_icmp_type;
|
|
__u8 nduseropt_icmp_code;
|
|
unsigned short nduseropt_pad2;
|
|
unsigned int nduseropt_pad3;
|
|
/* Followed by one or more ND options */
|
|
};
|
|
|
|
enum {
|
|
NDUSEROPT_UNSPEC,
|
|
NDUSEROPT_SRCADDR,
|
|
__NDUSEROPT_MAX
|
|
};
|
|
|
|
#define NDUSEROPT_MAX (__NDUSEROPT_MAX - 1)
|
|
|
|
#ifndef __KERNEL__
|
|
/* RTnetlink multicast groups - backwards compatibility for userspace */
|
|
#define RTMGRP_LINK 1
|
|
#define RTMGRP_NOTIFY 2
|
|
#define RTMGRP_NEIGH 4
|
|
#define RTMGRP_TC 8
|
|
|
|
#define RTMGRP_IPV4_IFADDR 0x10
|
|
#define RTMGRP_IPV4_MROUTE 0x20
|
|
#define RTMGRP_IPV4_ROUTE 0x40
|
|
#define RTMGRP_IPV4_RULE 0x80
|
|
|
|
#define RTMGRP_IPV6_IFADDR 0x100
|
|
#define RTMGRP_IPV6_MROUTE 0x200
|
|
#define RTMGRP_IPV6_ROUTE 0x400
|
|
#define RTMGRP_IPV6_IFINFO 0x800
|
|
|
|
#define RTMGRP_DECnet_IFADDR 0x1000
|
|
#define RTMGRP_DECnet_ROUTE 0x4000
|
|
|
|
#define RTMGRP_IPV6_PREFIX 0x20000
|
|
#endif
|
|
|
|
/* RTnetlink multicast groups */
|
|
enum rtnetlink_groups {
|
|
RTNLGRP_NONE,
|
|
#define RTNLGRP_NONE RTNLGRP_NONE
|
|
RTNLGRP_LINK,
|
|
#define RTNLGRP_LINK RTNLGRP_LINK
|
|
RTNLGRP_NOTIFY,
|
|
#define RTNLGRP_NOTIFY RTNLGRP_NOTIFY
|
|
RTNLGRP_NEIGH,
|
|
#define RTNLGRP_NEIGH RTNLGRP_NEIGH
|
|
RTNLGRP_TC,
|
|
#define RTNLGRP_TC RTNLGRP_TC
|
|
RTNLGRP_IPV4_IFADDR,
|
|
#define RTNLGRP_IPV4_IFADDR RTNLGRP_IPV4_IFADDR
|
|
RTNLGRP_IPV4_MROUTE,
|
|
#define RTNLGRP_IPV4_MROUTE RTNLGRP_IPV4_MROUTE
|
|
RTNLGRP_IPV4_ROUTE,
|
|
#define RTNLGRP_IPV4_ROUTE RTNLGRP_IPV4_ROUTE
|
|
RTNLGRP_IPV4_RULE,
|
|
#define RTNLGRP_IPV4_RULE RTNLGRP_IPV4_RULE
|
|
RTNLGRP_IPV6_IFADDR,
|
|
#define RTNLGRP_IPV6_IFADDR RTNLGRP_IPV6_IFADDR
|
|
RTNLGRP_IPV6_MROUTE,
|
|
#define RTNLGRP_IPV6_MROUTE RTNLGRP_IPV6_MROUTE
|
|
RTNLGRP_IPV6_ROUTE,
|
|
#define RTNLGRP_IPV6_ROUTE RTNLGRP_IPV6_ROUTE
|
|
RTNLGRP_IPV6_IFINFO,
|
|
#define RTNLGRP_IPV6_IFINFO RTNLGRP_IPV6_IFINFO
|
|
RTNLGRP_DECnet_IFADDR,
|
|
#define RTNLGRP_DECnet_IFADDR RTNLGRP_DECnet_IFADDR
|
|
RTNLGRP_NOP2,
|
|
RTNLGRP_DECnet_ROUTE,
|
|
#define RTNLGRP_DECnet_ROUTE RTNLGRP_DECnet_ROUTE
|
|
RTNLGRP_DECnet_RULE,
|
|
#define RTNLGRP_DECnet_RULE RTNLGRP_DECnet_RULE
|
|
RTNLGRP_NOP4,
|
|
RTNLGRP_IPV6_PREFIX,
|
|
#define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX
|
|
RTNLGRP_IPV6_RULE,
|
|
#define RTNLGRP_IPV6_RULE RTNLGRP_IPV6_RULE
|
|
RTNLGRP_ND_USEROPT,
|
|
#define RTNLGRP_ND_USEROPT RTNLGRP_ND_USEROPT
|
|
RTNLGRP_PHONET_IFADDR,
|
|
#define RTNLGRP_PHONET_IFADDR RTNLGRP_PHONET_IFADDR
|
|
RTNLGRP_PHONET_ROUTE,
|
|
#define RTNLGRP_PHONET_ROUTE RTNLGRP_PHONET_ROUTE
|
|
RTNLGRP_DCB,
|
|
#define RTNLGRP_DCB RTNLGRP_DCB
|
|
RTNLGRP_IPV4_NETCONF,
|
|
#define RTNLGRP_IPV4_NETCONF RTNLGRP_IPV4_NETCONF
|
|
RTNLGRP_IPV6_NETCONF,
|
|
#define RTNLGRP_IPV6_NETCONF RTNLGRP_IPV6_NETCONF
|
|
RTNLGRP_MDB,
|
|
#define RTNLGRP_MDB RTNLGRP_MDB
|
|
RTNLGRP_MPLS_ROUTE,
|
|
#define RTNLGRP_MPLS_ROUTE RTNLGRP_MPLS_ROUTE
|
|
RTNLGRP_NSID,
|
|
#define RTNLGRP_NSID RTNLGRP_NSID
|
|
__RTNLGRP_MAX
|
|
};
|
|
#define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
|
|
|
|
/* TC action piece */
|
|
struct tcamsg {
|
|
unsigned char tca_family;
|
|
unsigned char tca__pad1;
|
|
unsigned short tca__pad2;
|
|
};
|
|
#define TA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcamsg))))
|
|
#define TA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcamsg))
|
|
#define TCA_ACT_TAB 1 /* attr type must be >=1 */
|
|
#define TCAA_MAX 1
|
|
|
|
/* New extended info filters for IFLA_EXT_MASK */
|
|
#define RTEXT_FILTER_VF (1 << 0)
|
|
#define RTEXT_FILTER_BRVLAN (1 << 1)
|
|
#define RTEXT_FILTER_BRVLAN_COMPRESSED (1 << 2)
|
|
#define RTEXT_FILTER_SKIP_STATS (1 << 3)
|
|
|
|
/* End of information exported to user level */
|
|
|
|
|
|
|
|
#endif /* _UAPI__LINUX_RTNETLINK_H */
|