Changes in 5.15.94 mm/migration: return errno when isolate_huge_page failed migrate: hugetlb: check for hugetlb shared PMD in node migration btrfs: limit device extents to the device size btrfs: zlib: zero-initialize zlib workspace ALSA: hda/realtek: Add Positivo N14KP6-TG ALSA: emux: Avoid potential array out-of-bound in snd_emux_xg_control() ALSA: hda/realtek: Fix the speaker output on Samsung Galaxy Book2 Pro 360 ALSA: hda/realtek: Enable mute/micmute LEDs on HP Elitebook, 645 G9 tracing: Fix poll() and select() do not work on per_cpu trace_pipe and trace_pipe_raw of/address: Return an error when no valid dma-ranges are found can: j1939: do not wait 250 ms if the same addr was already claimed xfrm: compat: change expression for switch in xfrm_xlate64 IB/hfi1: Restore allocated resources on failed copyout xfrm/compat: prevent potential spectre v1 gadget in xfrm_xlate32_attr() IB/IPoIB: Fix legacy IPoIB due to wrong number of queues RDMA/irdma: Fix potential NULL-ptr-dereference RDMA/usnic: use iommu_map_atomic() under spin_lock() xfrm: fix bug with DSCP copy to v6 from v4 tunnel net: phylink: move phy_device_free() to correctly release phy device bonding: fix error checking in bond_debug_reregister() net: phy: meson-gxl: use MMD access dummy stubs for GXL, internal PHY ionic: clean interrupt before enabling queue to avoid credit race uapi: add missing ip/ipv6 header dependencies for linux/stddef.h ice: Do not use WQ_MEM_RECLAIM flag for workqueue net: dsa: mt7530: don't change PVC_EG_TAG when CPU port becomes VLAN-aware net: mscc: ocelot: fix VCAP filters not matching on MAC with "protocol 802.1Q" net/mlx5e: Move repeating clear_bit in mlx5e_rx_reporter_err_rq_cqe_recover net/mlx5e: Introduce the mlx5e_flush_rq function net/mlx5e: Update rx ring hw mtu upon each rx-fcs flag change net/mlx5: Bridge, fix ageing of peer FDB entries net/mlx5e: IPoIB, Show unknown speed instead of error net/mlx5: fw_tracer, Clear load bit when freeing string DBs buffers net/mlx5: fw_tracer, Zero consumer index when reloading the tracer net/mlx5: Serialize module cleanup with reload and remove igc: Add ndo_tx_timeout support rds: rds_rm_zerocopy_callback() use list_first_entry() selftests: forwarding: lib: quote the sysctl values ALSA: pci: lx6464es: fix a debug loop riscv: stacktrace: Fix missing the first frame ASoC: topology: Return -ENOMEM on memory allocation failure pinctrl: mediatek: Fix the drive register definition of some Pins pinctrl: aspeed: Fix confusing types in return value pinctrl: single: fix potential NULL dereference spi: dw: Fix wrong FIFO level setting for long xfers pinctrl: intel: Restore the pins that used to be in Direct IRQ mode cifs: Fix use-after-free in rdata->read_into_pages() net: USB: Fix wrong-direction WARNING in plusb.c mptcp: be careful on subflow status propagation on errors btrfs: free device in btrfs_close_devices for a single device filesystem usb: core: add quirk for Alcor Link AK9563 smartcard reader usb: typec: altmodes/displayport: Fix probe pin assign check clk: ingenic: jz4760: Update M/N/OD calculation algorithm ceph: flush cap releases when the session is flushed riscv: Fixup race condition on PG_dcache_clean in flush_icache_pte powerpc/64s/interrupt: Fix interrupt exit race with security mitigation switch rtmutex: Ensure that the top waiter is always woken up arm64: dts: meson-gx: Make mmc host controller interrupts level-sensitive arm64: dts: meson-g12-common: Make mmc host controller interrupts level-sensitive arm64: dts: meson-axg: Make mmc host controller interrupts level-sensitive Fix page corruption caused by racy check in __free_pages drm/amdgpu/fence: Fix oops due to non-matching drm_sched init/fini drm/i915: Initialize the obj flags for shmem objects drm/i915: Fix VBT DSI DVO port handling x86/speculation: Identify processors vulnerable to SMT RSB predictions KVM: x86: Mitigate the cross-thread return address predictions bug Documentation/hw-vuln: Add documentation for Cross-Thread Return Predictions Linux 5.15.94 Change-Id: I0bf18eba4ef77a0be831b3b48610b06311fd5a3e Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
202 lines
4.1 KiB
C
202 lines
4.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
#ifndef _UAPI_IPV6_H
|
|
#define _UAPI_IPV6_H
|
|
|
|
#include <linux/libc-compat.h>
|
|
#include <linux/types.h>
|
|
#include <linux/stddef.h>
|
|
#include <linux/in6.h>
|
|
#include <asm/byteorder.h>
|
|
|
|
/* The latest drafts declared increase in minimal mtu up to 1280. */
|
|
|
|
#define IPV6_MIN_MTU 1280
|
|
|
|
/*
|
|
* Advanced API
|
|
* source interface/address selection, source routing, etc...
|
|
* *under construction*
|
|
*/
|
|
|
|
#if __UAPI_DEF_IN6_PKTINFO
|
|
struct in6_pktinfo {
|
|
struct in6_addr ipi6_addr;
|
|
int ipi6_ifindex;
|
|
};
|
|
#endif
|
|
|
|
#if __UAPI_DEF_IP6_MTUINFO
|
|
struct ip6_mtuinfo {
|
|
struct sockaddr_in6 ip6m_addr;
|
|
__u32 ip6m_mtu;
|
|
};
|
|
#endif
|
|
|
|
struct in6_ifreq {
|
|
struct in6_addr ifr6_addr;
|
|
__u32 ifr6_prefixlen;
|
|
int ifr6_ifindex;
|
|
};
|
|
|
|
#define IPV6_SRCRT_STRICT 0x01 /* Deprecated; will be removed */
|
|
#define IPV6_SRCRT_TYPE_0 0 /* Deprecated; will be removed */
|
|
#define IPV6_SRCRT_TYPE_2 2 /* IPv6 type 2 Routing Header */
|
|
#define IPV6_SRCRT_TYPE_3 3 /* RPL Segment Routing with IPv6 */
|
|
#define IPV6_SRCRT_TYPE_4 4 /* Segment Routing with IPv6 */
|
|
|
|
/*
|
|
* routing header
|
|
*/
|
|
struct ipv6_rt_hdr {
|
|
__u8 nexthdr;
|
|
__u8 hdrlen;
|
|
__u8 type;
|
|
__u8 segments_left;
|
|
|
|
/*
|
|
* type specific data
|
|
* variable length field
|
|
*/
|
|
};
|
|
|
|
|
|
struct ipv6_opt_hdr {
|
|
__u8 nexthdr;
|
|
__u8 hdrlen;
|
|
/*
|
|
* TLV encoded option data follows.
|
|
*/
|
|
} __attribute__((packed)); /* required for some archs */
|
|
|
|
#define ipv6_destopt_hdr ipv6_opt_hdr
|
|
#define ipv6_hopopt_hdr ipv6_opt_hdr
|
|
|
|
/* Router Alert option values (RFC2711) */
|
|
#define IPV6_OPT_ROUTERALERT_MLD 0x0000 /* MLD(RFC2710) */
|
|
|
|
/*
|
|
* routing header type 0 (used in cmsghdr struct)
|
|
*/
|
|
|
|
struct rt0_hdr {
|
|
struct ipv6_rt_hdr rt_hdr;
|
|
__u32 reserved;
|
|
struct in6_addr addr[0];
|
|
|
|
#define rt0_type rt_hdr.type
|
|
};
|
|
|
|
/*
|
|
* routing header type 2
|
|
*/
|
|
|
|
struct rt2_hdr {
|
|
struct ipv6_rt_hdr rt_hdr;
|
|
__u32 reserved;
|
|
struct in6_addr addr;
|
|
|
|
#define rt2_type rt_hdr.type
|
|
};
|
|
|
|
/*
|
|
* home address option in destination options header
|
|
*/
|
|
|
|
struct ipv6_destopt_hao {
|
|
__u8 type;
|
|
__u8 length;
|
|
struct in6_addr addr;
|
|
} __attribute__((packed));
|
|
|
|
/*
|
|
* IPv6 fixed header
|
|
*
|
|
* BEWARE, it is incorrect. The first 4 bits of flow_lbl
|
|
* are glued to priority now, forming "class".
|
|
*/
|
|
|
|
struct ipv6hdr {
|
|
#if defined(__LITTLE_ENDIAN_BITFIELD)
|
|
__u8 priority:4,
|
|
version:4;
|
|
#elif defined(__BIG_ENDIAN_BITFIELD)
|
|
__u8 version:4,
|
|
priority:4;
|
|
#else
|
|
#error "Please fix <asm/byteorder.h>"
|
|
#endif
|
|
__u8 flow_lbl[3];
|
|
|
|
__be16 payload_len;
|
|
__u8 nexthdr;
|
|
__u8 hop_limit;
|
|
|
|
struct in6_addr saddr;
|
|
struct in6_addr daddr;
|
|
};
|
|
|
|
|
|
/* index values for the variables in ipv6_devconf */
|
|
enum {
|
|
DEVCONF_FORWARDING = 0,
|
|
DEVCONF_HOPLIMIT,
|
|
DEVCONF_MTU6,
|
|
DEVCONF_ACCEPT_RA,
|
|
DEVCONF_ACCEPT_REDIRECTS,
|
|
DEVCONF_AUTOCONF,
|
|
DEVCONF_DAD_TRANSMITS,
|
|
DEVCONF_RTR_SOLICITS,
|
|
DEVCONF_RTR_SOLICIT_INTERVAL,
|
|
DEVCONF_RTR_SOLICIT_DELAY,
|
|
DEVCONF_USE_TEMPADDR,
|
|
DEVCONF_TEMP_VALID_LFT,
|
|
DEVCONF_TEMP_PREFERED_LFT,
|
|
DEVCONF_REGEN_MAX_RETRY,
|
|
DEVCONF_MAX_DESYNC_FACTOR,
|
|
DEVCONF_MAX_ADDRESSES,
|
|
DEVCONF_FORCE_MLD_VERSION,
|
|
DEVCONF_ACCEPT_RA_DEFRTR,
|
|
DEVCONF_ACCEPT_RA_PINFO,
|
|
DEVCONF_ACCEPT_RA_RTR_PREF,
|
|
DEVCONF_RTR_PROBE_INTERVAL,
|
|
DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN,
|
|
DEVCONF_PROXY_NDP,
|
|
DEVCONF_OPTIMISTIC_DAD,
|
|
DEVCONF_ACCEPT_SOURCE_ROUTE,
|
|
DEVCONF_MC_FORWARDING,
|
|
DEVCONF_DISABLE_IPV6,
|
|
DEVCONF_ACCEPT_DAD,
|
|
DEVCONF_FORCE_TLLAO,
|
|
DEVCONF_NDISC_NOTIFY,
|
|
DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL,
|
|
DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL,
|
|
DEVCONF_SUPPRESS_FRAG_NDISC,
|
|
DEVCONF_ACCEPT_RA_FROM_LOCAL,
|
|
DEVCONF_USE_OPTIMISTIC,
|
|
DEVCONF_ACCEPT_RA_MTU,
|
|
DEVCONF_STABLE_SECRET,
|
|
DEVCONF_USE_OIF_ADDRS_ONLY,
|
|
DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT,
|
|
DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN,
|
|
DEVCONF_DROP_UNICAST_IN_L2_MULTICAST,
|
|
DEVCONF_DROP_UNSOLICITED_NA,
|
|
DEVCONF_KEEP_ADDR_ON_DOWN,
|
|
DEVCONF_RTR_SOLICIT_MAX_INTERVAL,
|
|
DEVCONF_SEG6_ENABLED,
|
|
DEVCONF_SEG6_REQUIRE_HMAC,
|
|
DEVCONF_ENHANCED_DAD,
|
|
DEVCONF_ADDR_GEN_MODE,
|
|
DEVCONF_DISABLE_POLICY,
|
|
DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN,
|
|
DEVCONF_NDISC_TCLASS,
|
|
DEVCONF_RPL_SEG_ENABLED,
|
|
DEVCONF_RA_DEFRTR_METRIC,
|
|
DEVCONF_IOAM6_ENABLED,
|
|
DEVCONF_IOAM6_ID,
|
|
DEVCONF_IOAM6_ID_WIDE,
|
|
DEVCONF_MAX
|
|
};
|
|
|
|
|
|
#endif /* _UAPI_IPV6_H */
|