History

Merge tag 'net-next-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next

Pull networking updates from Paolo Abeni: "Core: - Increase size limits for to-be-sent skb frag allocations. This allows tun, tap devices and packet sockets to better cope with large writes operations - Store netdevs in an xarray, to simplify iterating over netdevs - Refactor nexthop selection for multipath routes - Improve sched class lifetime handling - Add backup nexthop ID support for bridge - Implement drop reasons support in openvswitch - Several data races annotations and fixes - Constify the sk parameter of routing functions - Prepend kernel version to netconsole message Protocols: - Implement support for TCP probing the peer being under memory pressure - Remove hard coded limitation on IPv6 specific info placement inside the socket struct - Get rid of sysctl_tcp_adv_win_scale and use an auto-estimated per socket scaling factor - Scaling-up the IPv6 expired route GC via a separated list of expiring routes - In-kernel support for the TLS alert protocol - Better support for UDP reuseport with connected sockets - Add NEXT-C-SID support for SRv6 End.X behavior, reducing the SR header size - Get rid of additional ancillary per MPTCP connection struct socket - Implement support for BPF-based MPTCP packet schedulers - Format MPTCP subtests selftests results in TAP - Several new SMC 2.1 features including unique experimental options, max connections per lgr negotiation, max links per lgr negotiation BPF: - Multi-buffer support in AF_XDP - Add multi uprobe BPF links for attaching multiple uprobes and usdt probes, which is significantly faster and saves extra fds - Implement an fd-based tc BPF attach API (TCX) and BPF link support on top of it - Add SO_REUSEPORT support for TC bpf_sk_assign - Support new instructions from cpu v4 to simplify the generated code and feature completeness, for x86, arm64, riscv64 - Support defragmenting IPv(4|6) packets in BPF - Teach verifier actual bounds of bpf_get_smp_processor_id() and fix perf+libbpf issue related to custom section handling - Introduce bpf map element count and enable it for all program types - Add a BPF hook in sys_socket() to change the protocol ID from IPPROTO_TCP to IPPROTO_MPTCP to cover migration for legacy - Introduce bpf_me_mcache_free_rcu() and fix OOM under stress - Add uprobe support for the bpf_get_func_ip helper - Check skb ownership against full socket - Support for up to 12 arguments in BPF trampoline - Extend link_info for kprobe_multi and perf_event links Netfilter: - Speed-up process exit by aborting ruleset validation if a fatal signal is pending - Allow NLA_POLICY_MASK to be used with BE16/BE32 types Driver API: - Page pool optimizations, to improve data locality and cache usage - Introduce ndo_hwtstamp_get() and ndo_hwtstamp_set() to avoid the need for raw ioctl() handling in drivers - Simplify genetlink dump operations (doit/dumpit) providing them the common information already populated in struct genl_info - Extend and use the yaml devlink specs to [re]generate the split ops - Introduce devlink selective dumps, to allow SF filtering SF based on handle and other attributes - Add yaml netlink spec for netlink-raw families, allow route, link and address related queries via the ynl tool - Remove phylink legacy mode support - Support offload LED blinking to phy - Add devlink port function attributes for IPsec New hardware / drivers: - Ethernet: - Broadcom ASP 2.0 (72165) ethernet controller - MediaTek MT7988 SoC - Texas Instruments AM654 SoC - Texas Instruments IEP driver - Atheros qca8081 phy - Marvell 88Q2110 phy - NXP TJA1120 phy - WiFi: - MediaTek mt7981 support - Can: - Kvaser SmartFusion2 PCI Express devices - Allwinner T113 controllers - Texas Instruments tcan4552/4553 chips - Bluetooth: - Intel Gale Peak - Qualcomm WCN3988 and WCN7850 - NXP AW693 and IW624 - Mediatek MT2925 Drivers: - Ethernet NICs: - nVidia/Mellanox: - mlx5: - support UDP encapsulation in packet offload mode - IPsec packet offload support in eswitch mode - improve aRFS observability by adding new set of counters - extends MACsec offload support to cover RoCE traffic - dynamic completion EQs - mlx4: - convert to use auxiliary bus instead of custom interface logic - Intel - ice: - implement switchdev bridge offload, even for LAG interfaces - implement SRIOV support for LAG interfaces - igc: - add support for multiple in-flight TX timestamps - Broadcom: - bnxt: - use the unified RX page pool buffers for XDP and non-XDP - use the NAPI skb allocation cache - OcteonTX2: - support Round Robin scheduling HTB offload - TC flower offload support for SPI field - Freescale: - add XDP_TX feature support - AMD: - ionic: add support for PCI FLR event - sfc: - basic conntrack offload - introduce eth, ipv4 and ipv6 pedit offloads - ST Microelectronics: - stmmac: maximze PTP timestamping resolution - Virtual NICs: - Microsoft vNIC: - batch ringing RX queue doorbell on receiving packets - add page pool for RX buffers - Virtio vNIC: - add per queue interrupt coalescing support - Google vNIC: - add queue-page-list mode support - Ethernet high-speed switches: - nVidia/Mellanox (mlxsw): - add port range matching tc-flower offload - permit enslavement to netdevices with uppers - Ethernet embedded switches: - Marvell (mv88e6xxx): - convert to phylink_pcs - Renesas: - r8A779fx: add speed change support - rzn1: enables vlan support - Ethernet PHYs: - convert mv88e6xxx to phylink_pcs - WiFi: - Qualcomm Wi-Fi 7 (ath12k): - extremely High Throughput (EHT) PHY support - RealTek (rtl8xxxu): - enable AP mode for: RTL8192FU, RTL8710BU (RTL8188GU), RTL8192EU and RTL8723BU - RealTek (rtw89): - Introduce Time Averaged SAR (TAS) support - Connector: - support for event filtering" * tag 'net-next-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1806 commits) net: ethernet: mtk_wed: minor change in wed_{tx,rx}info_show net: ethernet: mtk_wed: add some more info in wed_txinfo_show handler net: stmmac: clarify difference between "interface" and "phy_interface" r8152: add vendor/device ID pair for D-Link DUB-E250 devlink: move devlink_notify_register/unregister() to dev.c devlink: move small_ops definition into netlink.c devlink: move tracepoint definitions into core.c devlink: push linecard related code into separate file devlink: push rate related code into separate file devlink: push trap related code into separate file devlink: use tracepoint_enabled() helper devlink: push region related code into separate file devlink: push param related code into separate file devlink: push resource related code into separate file devlink: push dpipe related code into separate file devlink: move and rename devlink_dpipe_send_and_alloc_skb() helper devlink: push shared buffer related code into separate file devlink: push port related code into separate file devlink: push object register/unregister notifications into separate helpers inet: fix IP_TRANSPARENT error handling ...

Linus Torvalds committed 3 years ago

Commit bd6c11b2 parents 68cf017 c8735121855 files · +109626 −46103Browse files

Showing the changes to include/uapi/linux (14 of 1855 files). Show all

Unified · Split

14 files
  1. include/uapi/linux/bpf.h +133 −17
  2. include/uapi/linux/cn_proc.h +44 −18
  3. include/uapi/linux/devlink.h +4 −0
  4. include/uapi/linux/if_link.h +1 −0
  5. include/uapi/linux/if_xdp.h +13 −0
  6. include/uapi/linux/ipv6.h +1 −0
  7. include/uapi/linux/mdio.h +17 −1
  8. include/uapi/linux/netdev.h +3 −1
  9. include/uapi/linux/netfilter_bridge/ebtables.h +12 −10
  10. include/uapi/linux/openvswitch.h +2 −0
  11. include/uapi/linux/pkt_cls.h +3 −0
  12. include/uapi/linux/pkt_sched.h +1 −0
  13. include/uapi/linux/smc.h +2 −0
  14. include/uapi/linux/virtio_net.h +14 −0
include/uapi/linux/bpf.h+133−17
@@ -19,6 +19,7 @@ · 18 unmodified lines
19 19
20/* ld/ldx fields */20/* ld/ldx fields */
21#define BPF_DW 0x18 /* double word (64-bit) */21#define BPF_DW 0x18 /* double word (64-bit) */
22#define BPF_MEMSX 0x80 /* load with sign extension */
22#define BPF_ATOMIC 0xc0 /* atomic memory ops - op type in immediate */23#define BPF_ATOMIC 0xc0 /* atomic memory ops - op type in immediate */
23#define BPF_XADD 0xc0 /* exclusive add - legacy name */24#define BPF_XADD 0xc0 /* exclusive add - legacy name */
24 25
@@ -1036,6 +1037,9 @@ enum bpf_attach_type { · 1011 unmodified lines
1036 BPF_LSM_CGROUP,1037 BPF_LSM_CGROUP,
1037 BPF_STRUCT_OPS,1038 BPF_STRUCT_OPS,
1038 BPF_NETFILTER,1039 BPF_NETFILTER,
1040 BPF_TCX_INGRESS,
1041 BPF_TCX_EGRESS,
1042 BPF_TRACE_UPROBE_MULTI,
1039 __MAX_BPF_ATTACH_TYPE1043 __MAX_BPF_ATTACH_TYPE
1040};1044};
1041 1045
@@ -1053,10 +1057,21 @@ enum bpf_link_type { · 11 unmodified lines
1053 BPF_LINK_TYPE_KPROBE_MULTI = 8,1057 BPF_LINK_TYPE_KPROBE_MULTI = 8,
1054 BPF_LINK_TYPE_STRUCT_OPS = 9,1058 BPF_LINK_TYPE_STRUCT_OPS = 9,
1055 BPF_LINK_TYPE_NETFILTER = 10,1059 BPF_LINK_TYPE_NETFILTER = 10,
1056 1060 BPF_LINK_TYPE_TCX = 11,
1061 BPF_LINK_TYPE_UPROBE_MULTI = 12,
1057 MAX_BPF_LINK_TYPE,1062 MAX_BPF_LINK_TYPE,
1058};1063};
1059 1064
1065enum bpf_perf_event_type {
1066 BPF_PERF_EVENT_UNSPEC = 0,
1067 BPF_PERF_EVENT_UPROBE = 1,
1068 BPF_PERF_EVENT_URETPROBE = 2,
1069 BPF_PERF_EVENT_KPROBE = 3,
1070 BPF_PERF_EVENT_KRETPROBE = 4,
1071 BPF_PERF_EVENT_TRACEPOINT = 5,
1072 BPF_PERF_EVENT_EVENT = 6,
1073};
1074
1060/* cgroup-bpf attach flags used in BPF_PROG_ATTACH command1075/* cgroup-bpf attach flags used in BPF_PROG_ATTACH command
1061 *1076 *
1062 * NONE(default): No further bpf programs allowed in the subtree.1077 * NONE(default): No further bpf programs allowed in the subtree.
@@ -1103,7 +1118,12 @@ enum bpf_link_type { · 40 unmodified lines
1103 */1118 */
1104#define BPF_F_ALLOW_OVERRIDE (1U << 0)1119#define BPF_F_ALLOW_OVERRIDE (1U << 0)
1105#define BPF_F_ALLOW_MULTI (1U << 1)1120#define BPF_F_ALLOW_MULTI (1U << 1)
1121/* Generic attachment flags. */
1106#define BPF_F_REPLACE (1U << 2)1122#define BPF_F_REPLACE (1U << 2)
1123#define BPF_F_BEFORE (1U << 3)
1124#define BPF_F_AFTER (1U << 4)
1125#define BPF_F_ID (1U << 5)
1126#define BPF_F_LINK BPF_F_LINK /* 1 << 13 */
1107 1127
1108/* If BPF_F_STRICT_ALIGNMENT is used in BPF_PROG_LOAD command, the1128/* If BPF_F_STRICT_ALIGNMENT is used in BPF_PROG_LOAD command, the
1109 * verifier will perform strict alignment checking as if the kernel1129 * verifier will perform strict alignment checking as if the kernel
@@ -1168,7 +1188,21 @@ enum bpf_link_type { · 58 unmodified lines
1168/* link_create.kprobe_multi.flags used in LINK_CREATE command for1188/* link_create.kprobe_multi.flags used in LINK_CREATE command for
1169 * BPF_TRACE_KPROBE_MULTI attach type to create return probe.1189 * BPF_TRACE_KPROBE_MULTI attach type to create return probe.
1170 */1190 */
1171#define BPF_F_KPROBE_MULTI_RETURN (1U << 0)1191enum {
1192 BPF_F_KPROBE_MULTI_RETURN = (1U << 0)
1193};
1194
1195/* link_create.uprobe_multi.flags used in LINK_CREATE command for
1196 * BPF_TRACE_UPROBE_MULTI attach type to create return probe.
1197 */
1198enum {
1199 BPF_F_UPROBE_MULTI_RETURN = (1U << 0)
1200};
1201
1202/* link_create.netfilter.flags used in LINK_CREATE command for
1203 * BPF_PROG_TYPE_NETFILTER to enable IP packet defragmentation.
1204 */
1205#define BPF_F_NETFILTER_IP_DEFRAG (1U << 0)
1172 1206
1173/* When BPF ldimm64's insn[0].src_reg != 0 then this can have1207/* When BPF ldimm64's insn[0].src_reg != 0 then this can have
1174 * the following extensions:1208 * the following extensions:
@@ -1434,14 +1468,19 @@ union bpf_attr { · 259 unmodified lines
1434 };1468 };
1435 1469
1436 struct { /* anonymous struct used by BPF_PROG_ATTACH/DETACH commands */1470 struct { /* anonymous struct used by BPF_PROG_ATTACH/DETACH commands */
1437 __u32 target_fd; /* container object to attach to */1471 union {
1438 __u32 attach_bpf_fd; /* eBPF program to attach */1472 __u32 target_fd; /* target object to attach to or ... */
1473 __u32 target_ifindex; /* target ifindex */
1474 };
1475 __u32 attach_bpf_fd;
1439 __u32 attach_type;1476 __u32 attach_type;
1440 __u32 attach_flags;1477 __u32 attach_flags;
1441 __u32 replace_bpf_fd; /* previously attached eBPF1478 __u32 replace_bpf_fd;
1442 * program to replace if1479 union {
1443 * BPF_F_REPLACE is used1480 __u32 relative_fd;
1444 */1481 __u32 relative_id;
1482 };
1483 __u64 expected_revision;
1445 };1484 };
1446 1485
1447 struct { /* anonymous struct used by BPF_PROG_TEST_RUN command */1486 struct { /* anonymous struct used by BPF_PROG_TEST_RUN command */
@@ -1487,16 +1526,26 @@ union bpf_attr { · 39 unmodified lines
1487 } info;1526 } info;
1488 1527
1489 struct { /* anonymous struct used by BPF_PROG_QUERY command */1528 struct { /* anonymous struct used by BPF_PROG_QUERY command */
1490 __u32 target_fd; /* container object to query */1529 union {
1530 __u32 target_fd; /* target object to query or ... */
1531 __u32 target_ifindex; /* target ifindex */
1532 };
1491 __u32 attach_type;1533 __u32 attach_type;
1492 __u32 query_flags;1534 __u32 query_flags;
1493 __u32 attach_flags;1535 __u32 attach_flags;
1494 __aligned_u64 prog_ids;1536 __aligned_u64 prog_ids;
1495 __u32 prog_cnt;1537 union {
1538 __u32 prog_cnt;
1539 __u32 count;
1540 };
1541 __u32 :32;
1496 /* output: per-program attach_flags.1542 /* output: per-program attach_flags.
1497 * not allowed to be set during effective query.1543 * not allowed to be set during effective query.
1498 */1544 */
1499 __aligned_u64 prog_attach_flags;1545 __aligned_u64 prog_attach_flags;
1546 __aligned_u64 link_ids;
1547 __aligned_u64 link_attach_flags;
1548 __u64 revision;
1500 } query;1549 } query;
1501 1550
1502 struct { /* anonymous struct used by BPF_RAW_TRACEPOINT_OPEN command */1551 struct { /* anonymous struct used by BPF_RAW_TRACEPOINT_OPEN command */
@@ -1539,13 +1588,13 @@ union bpf_attr { · 36 unmodified lines
1539 __u32 map_fd; /* struct_ops to attach */1588 __u32 map_fd; /* struct_ops to attach */
1540 };1589 };
1541 union {1590 union {
1542 __u32 target_fd; /* object to attach to */1591 __u32 target_fd; /* target object to attach to or ... */
1543 __u32 target_ifindex; /* target ifindex */1592 __u32 target_ifindex; /* target ifindex */
1544 };1593 };
1545 __u32 attach_type; /* attach type */1594 __u32 attach_type; /* attach type */
1546 __u32 flags; /* extra flags */1595 __u32 flags; /* extra flags */
1547 union {1596 union {
1548 __u32 target_btf_id; /* btf_id of target to attach to */1597 __u32 target_btf_id; /* btf_id of target to attach to */
1549 struct {1598 struct {
1550 __aligned_u64 iter_info; /* extra bpf_iter_link_info */1599 __aligned_u64 iter_info; /* extra bpf_iter_link_info */
1551 __u32 iter_info_len; /* iter_info length */1600 __u32 iter_info_len; /* iter_info length */
@@ -1579,6 +1628,22 @@ union bpf_attr { · 27 unmodified lines
1579 __s32 priority;1628 __s32 priority;
1580 __u32 flags;1629 __u32 flags;
1581 } netfilter;1630 } netfilter;
1631 struct {
1632 union {
1633 __u32 relative_fd;
1634 __u32 relative_id;
1635 };
1636 __u64 expected_revision;
1637 } tcx;
1638 struct {
1639 __aligned_u64 path;
1640 __aligned_u64 offsets;
1641 __aligned_u64 ref_ctr_offsets;
1642 __aligned_u64 cookies;
1643 __u32 cnt;
1644 __u32 flags;
1645 __u32 pid;
1646 } uprobe_multi;
1582 };1647 };
1583 } link_create;1648 } link_create;
1584 1649
@@ -4159,9 +4224,6 @@ union bpf_attr { · 2574 unmodified lines
4159 * **-EOPNOTSUPP** if the operation is not supported, for example4224 * **-EOPNOTSUPP** if the operation is not supported, for example
4160 * a call from outside of TC ingress.4225 * a call from outside of TC ingress.
4161 *4226 *
4162 * **-ESOCKTNOSUPPORT** if the socket type is not supported
4163 * (reuseport).
4164 *
4165 * long bpf_sk_assign(struct bpf_sk_lookup *ctx, struct bpf_sock *sk, u64 flags)4227 * long bpf_sk_assign(struct bpf_sk_lookup *ctx, struct bpf_sock *sk, u64 flags)
4166 * Description4228 * Description
4167 * Helper is overloaded depending on BPF program type. This4229 * Helper is overloaded depending on BPF program type. This
@@ -5044,9 +5106,14 @@ union bpf_attr { · 876 unmodified lines
5044 * u64 bpf_get_func_ip(void *ctx)5106 * u64 bpf_get_func_ip(void *ctx)
5045 * Description5107 * Description
5046 * Get address of the traced function (for tracing and kprobe programs).5108 * Get address of the traced function (for tracing and kprobe programs).
5109 *
5110 * When called for kprobe program attached as uprobe it returns
5111 * probe address for both entry and return uprobe.
5112 *
5047 * Return5113 * Return
5048 * Address of the traced function.5114 * Address of the traced function for kprobe.
5049 * 0 for kprobes placed within the function (not at the entry).5115 * 0 for kprobes placed within the function (not at the entry).
5116 * Address of the probe for uprobe and return uprobe.
5050 *5117 *
5051 * u64 bpf_get_attach_cookie(void *ctx)5118 * u64 bpf_get_attach_cookie(void *ctx)
5052 * Description5119 * Description
@@ -6187,6 +6254,19 @@ struct bpf_sock_tuple { · 1134 unmodified lines
6187 };6254 };
6188};6255};
6189 6256
6257/* (Simplified) user return codes for tcx prog type.
6258 * A valid tcx program must return one of these defined values. All other
6259 * return codes are reserved for future use. Must remain compatible with
6260 * their TC_ACT_* counter-parts. For compatibility in behavior, unknown
6261 * return codes are mapped to TCX_NEXT.
6262 */
6263enum tcx_action_base {
6264 TCX_NEXT = -1,
6265 TCX_PASS = 0,
6266 TCX_DROP = 2,
6267 TCX_REDIRECT = 7,
6268};
6269
6190struct bpf_xdp_sock {6270struct bpf_xdp_sock {
6191 __u32 queue_id;6271 __u32 queue_id;
6192};6272};
@@ -6439,6 +6519,40 @@ struct bpf_link_info { · 246 unmodified lines
6439 __s32 priority;6519 __s32 priority;
6440 __u32 flags;6520 __u32 flags;
6441 } netfilter;6521 } netfilter;
6522 struct {
6523 __aligned_u64 addrs;
6524 __u32 count; /* in/out: kprobe_multi function count */
6525 __u32 flags;
6526 } kprobe_multi;
6527 struct {
6528 __u32 type; /* enum bpf_perf_event_type */
6529 __u32 :32;
6530 union {
6531 struct {
6532 __aligned_u64 file_name; /* in/out */
6533 __u32 name_len;
6534 __u32 offset; /* offset from file_name */
6535 } uprobe; /* BPF_PERF_EVENT_UPROBE, BPF_PERF_EVENT_URETPROBE */
6536 struct {
6537 __aligned_u64 func_name; /* in/out */
6538 __u32 name_len;
6539 __u32 offset; /* offset from func_name */
6540 __u64 addr;
6541 } kprobe; /* BPF_PERF_EVENT_KPROBE, BPF_PERF_EVENT_KRETPROBE */
6542 struct {
6543 __aligned_u64 tp_name; /* in/out */
6544 __u32 name_len;
6545 } tracepoint; /* BPF_PERF_EVENT_TRACEPOINT */
6546 struct {
6547 __u64 config;
6548 __u32 type;
6549 } event; /* BPF_PERF_EVENT_EVENT */
6550 };
6551 } perf_event;
6552 struct {
6553 __u32 ifindex;
6554 __u32 attach_type;
6555 } tcx;
6442 };6556 };
6443} __attribute__((aligned(8)));6557} __attribute__((aligned(8)));
6444 6558
@@ -7012,6 +7126,7 @@ struct bpf_list_head { · 567 unmodified lines
7012struct bpf_list_node {7126struct bpf_list_node {
7013 __u64 :64;7127 __u64 :64;
7014 __u64 :64;7128 __u64 :64;
7129 __u64 :64;
7015} __attribute__((aligned(8)));7130} __attribute__((aligned(8)));
7016 7131
7017struct bpf_rb_root {7132struct bpf_rb_root {
@@ -7023,6 +7138,7 @@ struct bpf_rb_node { · 5 unmodified lines
7023 __u64 :64;7138 __u64 :64;
7024 __u64 :64;7139 __u64 :64;
7025 __u64 :64;7140 __u64 :64;
7141 __u64 :64;
7026} __attribute__((aligned(8)));7142} __attribute__((aligned(8)));
7027 7143
7028struct bpf_refcount {7144struct bpf_refcount {
include/uapi/linux/cn_proc.h+44−18
@@ -30,6 +30,49 @@ enum proc_cn_mcast_op { · 29 unmodified lines
30 PROC_CN_MCAST_IGNORE = 230 PROC_CN_MCAST_IGNORE = 2
31};31};
32 32
33#define PROC_EVENT_ALL (PROC_EVENT_FORK | PROC_EVENT_EXEC | PROC_EVENT_UID | \
34 PROC_EVENT_GID | PROC_EVENT_SID | PROC_EVENT_PTRACE | \
35 PROC_EVENT_COMM | PROC_EVENT_NONZERO_EXIT | \
36 PROC_EVENT_COREDUMP | PROC_EVENT_EXIT)
37
38/*
39 * If you add an entry in proc_cn_event, make sure you add it in
40 * PROC_EVENT_ALL above as well.
41 */
42enum proc_cn_event {
43 /* Use successive bits so the enums can be used to record
44 * sets of events as well
45 */
46 PROC_EVENT_NONE = 0x00000000,
47 PROC_EVENT_FORK = 0x00000001,
48 PROC_EVENT_EXEC = 0x00000002,
49 PROC_EVENT_UID = 0x00000004,
50 PROC_EVENT_GID = 0x00000040,
51 PROC_EVENT_SID = 0x00000080,
52 PROC_EVENT_PTRACE = 0x00000100,
53 PROC_EVENT_COMM = 0x00000200,
54 /* "next" should be 0x00000400 */
55 /* "last" is the last process event: exit,
56 * while "next to last" is coredumping event
57 * before that is report only if process dies
58 * with non-zero exit status
59 */
60 PROC_EVENT_NONZERO_EXIT = 0x20000000,
61 PROC_EVENT_COREDUMP = 0x40000000,
62 PROC_EVENT_EXIT = 0x80000000
63};
64
65struct proc_input {
66 enum proc_cn_mcast_op mcast_op;
67 enum proc_cn_event event_type;
68};
69
70static inline enum proc_cn_event valid_event(enum proc_cn_event ev_type)
71{
72 ev_type &= PROC_EVENT_ALL;
73 return ev_type;
74}
75
33/*76/*
34 * From the user's point of view, the process77 * From the user's point of view, the process
35 * ID is the thread group ID and thread ID is the internal78 * ID is the thread group ID and thread ID is the internal
@@ -44,24 +87,7 @@ enum proc_cn_mcast_op { · 8 unmodified lines
44 */87 */
45 88
46struct proc_event {89struct proc_event {
47 enum what {90 enum proc_cn_event what;
48 /* Use successive bits so the enums can be used to record
49 * sets of events as well
50 */
51 PROC_EVENT_NONE = 0x00000000,
52 PROC_EVENT_FORK = 0x00000001,
53 PROC_EVENT_EXEC = 0x00000002,
54 PROC_EVENT_UID = 0x00000004,
55 PROC_EVENT_GID = 0x00000040,
56 PROC_EVENT_SID = 0x00000080,
57 PROC_EVENT_PTRACE = 0x00000100,
58 PROC_EVENT_COMM = 0x00000200,
59 /* "next" should be 0x00000400 */
60 /* "last" is the last process event: exit,
61 * while "next to last" is coredumping event */
62 PROC_EVENT_COREDUMP = 0x40000000,
63 PROC_EVENT_EXIT = 0x80000000
64 } what;
65 __u32 cpu;91 __u32 cpu;
66 __u64 __attribute__((aligned(8))) timestamp_ns;92 __u64 __attribute__((aligned(8))) timestamp_ns;
67 /* Number of nano seconds since system boot */93 /* Number of nano seconds since system boot */
include/uapi/linux/devlink.h+4−0
@@ -661,6 +661,8 @@ enum devlink_resource_unit { · 660 unmodified lines
661enum devlink_port_fn_attr_cap {661enum devlink_port_fn_attr_cap {
662 DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT,662 DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT,
663 DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT,663 DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT,
664 DEVLINK_PORT_FN_ATTR_CAP_IPSEC_CRYPTO_BIT,
665 DEVLINK_PORT_FN_ATTR_CAP_IPSEC_PACKET_BIT,
664 666
665 /* Add new caps above */667 /* Add new caps above */
666 __DEVLINK_PORT_FN_ATTR_CAPS_MAX,668 __DEVLINK_PORT_FN_ATTR_CAPS_MAX,
@@ -669,6 +671,8 @@ enum devlink_port_fn_attr_cap { · 2 unmodified lines
669#define DEVLINK_PORT_FN_CAP_ROCE _BITUL(DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT)671#define DEVLINK_PORT_FN_CAP_ROCE _BITUL(DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT)
670#define DEVLINK_PORT_FN_CAP_MIGRATABLE \672#define DEVLINK_PORT_FN_CAP_MIGRATABLE \
671 _BITUL(DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT)673 _BITUL(DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT)
674#define DEVLINK_PORT_FN_CAP_IPSEC_CRYPTO _BITUL(DEVLINK_PORT_FN_ATTR_CAP_IPSEC_CRYPTO_BIT)
675#define DEVLINK_PORT_FN_CAP_IPSEC_PACKET _BITUL(DEVLINK_PORT_FN_ATTR_CAP_IPSEC_PACKET_BIT)
672 676
673enum devlink_port_function_attr {677enum devlink_port_function_attr {
674 DEVLINK_PORT_FUNCTION_ATTR_UNSPEC,678 DEVLINK_PORT_FUNCTION_ATTR_UNSPEC,
include/uapi/linux/if_link.h+1−0
@@ -570,6 +570,7 @@ enum { · 569 unmodified lines
570 IFLA_BRPORT_MCAST_N_GROUPS,570 IFLA_BRPORT_MCAST_N_GROUPS,
571 IFLA_BRPORT_MCAST_MAX_GROUPS,571 IFLA_BRPORT_MCAST_MAX_GROUPS,
572 IFLA_BRPORT_NEIGH_VLAN_SUPPRESS,572 IFLA_BRPORT_NEIGH_VLAN_SUPPRESS,
573 IFLA_BRPORT_BACKUP_NHID,
573 __IFLA_BRPORT_MAX574 __IFLA_BRPORT_MAX
574};575};
575#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)576#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
include/uapi/linux/if_xdp.h+13−0
@@ -25,6 +25,12 @@ · 24 unmodified lines
25 * application.25 * application.
26 */26 */
27#define XDP_USE_NEED_WAKEUP (1 << 3)27#define XDP_USE_NEED_WAKEUP (1 << 3)
28/* By setting this option, userspace application indicates that it can
29 * handle multiple descriptors per packet thus enabling AF_XDP to split
30 * multi-buffer XDP frames into multiple Rx descriptors. Without this set
31 * such frames will be dropped.
32 */
33#define XDP_USE_SG (1 << 4)
28 34
29/* Flags for xsk_umem_config flags */35/* Flags for xsk_umem_config flags */
30#define XDP_UMEM_UNALIGNED_CHUNK_FLAG (1 << 0)36#define XDP_UMEM_UNALIGNED_CHUNK_FLAG (1 << 0)
@@ -108,4 +114,11 @@ struct xdp_desc { · 77 unmodified lines
108 114
109/* UMEM descriptor is __u64 */115/* UMEM descriptor is __u64 */
110 116
117/* Flag indicating that the packet continues with the buffer pointed out by the
118 * next frame in the ring. The end of the packet is signalled by setting this
119 * bit to zero. For single buffer packets, every descriptor has 'options' set
120 * to 0 and this maintains backward compatibility.
121 */
122#define XDP_PKT_CONTD (1 << 0)
123
111#endif /* _LINUX_IF_XDP_H */124#endif /* _LINUX_IF_XDP_H */
include/uapi/linux/ipv6.h+1−0
@@ -198,6 +198,7 @@ enum { · 197 unmodified lines
198 DEVCONF_IOAM6_ID_WIDE,198 DEVCONF_IOAM6_ID_WIDE,
199 DEVCONF_NDISC_EVICT_NOCARRIER,199 DEVCONF_NDISC_EVICT_NOCARRIER,
200 DEVCONF_ACCEPT_UNTRACKED_NA,200 DEVCONF_ACCEPT_UNTRACKED_NA,
201 DEVCONF_ACCEPT_RA_MIN_LFT,
201 DEVCONF_MAX202 DEVCONF_MAX
202};203};
203 204
include/uapi/linux/mdio.h+17−1
@@ -82,6 +82,8 @@ · 81 unmodified lines
82#define MDIO_AN_10BT1_AN_CTRL 526 /* 10BASE-T1 AN control register */82#define MDIO_AN_10BT1_AN_CTRL 526 /* 10BASE-T1 AN control register */
83#define MDIO_AN_10BT1_AN_STAT 527 /* 10BASE-T1 AN status register */83#define MDIO_AN_10BT1_AN_STAT 527 /* 10BASE-T1 AN status register */
84#define MDIO_PMA_PMD_BT1_CTRL 2100 /* BASE-T1 PMA/PMD control register */84#define MDIO_PMA_PMD_BT1_CTRL 2100 /* BASE-T1 PMA/PMD control register */
85#define MDIO_PCS_1000BT1_CTRL 2304 /* 1000BASE-T1 PCS control register */
86#define MDIO_PCS_1000BT1_STAT 2305 /* 1000BASE-T1 PCS status register */
85 87
86/* LASI (Link Alarm Status Interrupt) registers, defined by XENPAK MSA. */88/* LASI (Link Alarm Status Interrupt) registers, defined by XENPAK MSA. */
87#define MDIO_PMA_LASI_RXCTRL 0x9000 /* RX_ALARM control */89#define MDIO_PMA_LASI_RXCTRL 0x9000 /* RX_ALARM control */
@@ -332,6 +334,8 @@ · 244 unmodified lines
332#define MDIO_PCS_10T1L_CTRL_RESET 0x8000 /* PCS reset */334#define MDIO_PCS_10T1L_CTRL_RESET 0x8000 /* PCS reset */
333 335
334/* BASE-T1 PMA/PMD extended ability register. */336/* BASE-T1 PMA/PMD extended ability register. */
337#define MDIO_PMA_PMD_BT1_B100_ABLE 0x0001 /* 100BASE-T1 Ability */
338#define MDIO_PMA_PMD_BT1_B1000_ABLE 0x0002 /* 1000BASE-T1 Ability */
335#define MDIO_PMA_PMD_BT1_B10L_ABLE 0x0004 /* 10BASE-T1L Ability */339#define MDIO_PMA_PMD_BT1_B10L_ABLE 0x0004 /* 10BASE-T1L Ability */
336 340
337/* BASE-T1 auto-negotiation advertisement register [15:0] */341/* BASE-T1 auto-negotiation advertisement register [15:0] */
@@ -373,7 +377,19 @@ · 35 unmodified lines
373#define MDIO_AN_10BT1_AN_STAT_LPA_EEE_T1L 0x4000 /* 10BASE-T1L LP EEE ability advertisement */377#define MDIO_AN_10BT1_AN_STAT_LPA_EEE_T1L 0x4000 /* 10BASE-T1L LP EEE ability advertisement */
374 378
375/* BASE-T1 PMA/PMD control register */379/* BASE-T1 PMA/PMD control register */
376#define MDIO_PMA_PMD_BT1_CTRL_CFG_MST 0x4000 /* MASTER-SLAVE config value */380#define MDIO_PMA_PMD_BT1_CTRL_STRAP 0x000F /* Type selection (Strap) */
381#define MDIO_PMA_PMD_BT1_CTRL_STRAP_B1000 0x0001 /* Select 1000BASE-T1 */
382#define MDIO_PMA_PMD_BT1_CTRL_CFG_MST 0x4000 /* MASTER-SLAVE config value */
383
384/* 1000BASE-T1 PCS control register */
385#define MDIO_PCS_1000BT1_CTRL_LOW_POWER 0x0800 /* Low power mode */
386#define MDIO_PCS_1000BT1_CTRL_DISABLE_TX 0x4000 /* Global PMA transmit disable */
387#define MDIO_PCS_1000BT1_CTRL_RESET 0x8000 /* Software reset value */
388
389/* 1000BASE-T1 PCS status register */
390#define MDIO_PCS_1000BT1_STAT_LINK 0x0004 /* PCS Link is up */
391#define MDIO_PCS_1000BT1_STAT_FAULT 0x0080 /* There is a fault condition */
392
377 393
378/* EEE Supported/Advertisement/LP Advertisement registers.394/* EEE Supported/Advertisement/LP Advertisement registers.
379 *395 *
include/uapi/linux/netdev.h+3−1
@@ -11,7 +11,7 @@ · 10 unmodified lines
11 11
12/**12/**
13 * enum netdev_xdp_act13 * enum netdev_xdp_act
14 * @NETDEV_XDP_ACT_BASIC: XDP feautues set supported by all drivers14 * @NETDEV_XDP_ACT_BASIC: XDP features set supported by all drivers
15 * (XDP_ABORTED, XDP_DROP, XDP_PASS, XDP_TX)15 * (XDP_ABORTED, XDP_DROP, XDP_PASS, XDP_TX)
16 * @NETDEV_XDP_ACT_REDIRECT: The netdev supports XDP_REDIRECT16 * @NETDEV_XDP_ACT_REDIRECT: The netdev supports XDP_REDIRECT
17 * @NETDEV_XDP_ACT_NDO_XMIT: This feature informs if netdev implements17 * @NETDEV_XDP_ACT_NDO_XMIT: This feature informs if netdev implements
@@ -34,6 +34,7 @@ enum netdev_xdp_act { · 16 unmodified lines
34 NETDEV_XDP_ACT_RX_SG = 32,34 NETDEV_XDP_ACT_RX_SG = 32,
35 NETDEV_XDP_ACT_NDO_XMIT_SG = 64,35 NETDEV_XDP_ACT_NDO_XMIT_SG = 64,
36 36
37 /* private: */
37 NETDEV_XDP_ACT_MASK = 127,38 NETDEV_XDP_ACT_MASK = 127,
38};39};
39 40
@@ -41,6 +42,7 @@ enum { · 1 unmodified line
41 NETDEV_A_DEV_IFINDEX = 1,42 NETDEV_A_DEV_IFINDEX = 1,
42 NETDEV_A_DEV_PAD,43 NETDEV_A_DEV_PAD,
43 NETDEV_A_DEV_XDP_FEATURES,44 NETDEV_A_DEV_XDP_FEATURES,
45 NETDEV_A_DEV_XDP_ZC_MAX_SEGS,
44 46
45 __NETDEV_A_DEV_MAX,47 __NETDEV_A_DEV_MAX,
46 NETDEV_A_DEV_MAX = (__NETDEV_A_DEV_MAX - 1)48 NETDEV_A_DEV_MAX = (__NETDEV_A_DEV_MAX - 1)
include/uapi/linux/netfilter_bridge/ebtables.h+12−10
@@ -87,7 +87,7 @@ struct ebt_entries { · 86 unmodified lines
87 /* nr. of entries */87 /* nr. of entries */
88 unsigned int nentries;88 unsigned int nentries;
89 /* entry list */89 /* entry list */
90 char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace))));90 char data[] __attribute__ ((aligned (__alignof__(struct ebt_replace))));
91};91};
92 92
93/* used for the bitmask of struct ebt_entry */93/* used for the bitmask of struct ebt_entry */
@@ -129,7 +129,7 @@ struct ebt_entry_match { · 35 unmodified lines
129 } u;129 } u;
130 /* size of data */130 /* size of data */
131 unsigned int match_size;131 unsigned int match_size;
132 unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace))));132 unsigned char data[] __attribute__ ((aligned (__alignof__(struct ebt_replace))));
133};133};
134 134
135struct ebt_entry_watcher {135struct ebt_entry_watcher {
@@ -142,7 +142,7 @@ struct ebt_entry_watcher { · 6 unmodified lines
142 } u;142 } u;
143 /* size of data */143 /* size of data */
144 unsigned int watcher_size;144 unsigned int watcher_size;
145 unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace))));145 unsigned char data[] __attribute__ ((aligned (__alignof__(struct ebt_replace))));
146};146};
147 147
148struct ebt_entry_target {148struct ebt_entry_target {
@@ -182,13 +182,15 @@ struct ebt_entry { · 33 unmodified lines
182 unsigned char sourcemsk[ETH_ALEN];182 unsigned char sourcemsk[ETH_ALEN];
183 unsigned char destmac[ETH_ALEN];183 unsigned char destmac[ETH_ALEN];
184 unsigned char destmsk[ETH_ALEN];184 unsigned char destmsk[ETH_ALEN];
185 /* sizeof ebt_entry + matches */185 __struct_group(/* no tag */, offsets, /* no attrs */,
186 unsigned int watchers_offset;186 /* sizeof ebt_entry + matches */
187 /* sizeof ebt_entry + matches + watchers */187 unsigned int watchers_offset;
188 unsigned int target_offset;188 /* sizeof ebt_entry + matches + watchers */
189 /* sizeof ebt_entry + matches + watchers + target */189 unsigned int target_offset;
190 unsigned int next_offset;190 /* sizeof ebt_entry + matches + watchers + target */
191 unsigned char elems[0] __attribute__ ((aligned (__alignof__(struct ebt_replace))));191 unsigned int next_offset;
192 );
193 unsigned char elems[] __attribute__ ((aligned (__alignof__(struct ebt_replace))));
192};194};
193 195
194static __inline__ struct ebt_entry_target *196static __inline__ struct ebt_entry_target *
include/uapi/linux/openvswitch.h+2−0
@@ -965,6 +965,7 @@ struct check_pkt_len_arg { · 964 unmodified lines
965 * start of the packet or at the start of the l3 header depending on the value965 * start of the packet or at the start of the l3 header depending on the value
966 * of l3 tunnel flag in the tun_flags field of OVS_ACTION_ATTR_ADD_MPLS966 * of l3 tunnel flag in the tun_flags field of OVS_ACTION_ATTR_ADD_MPLS
967 * argument.967 * argument.
968 * @OVS_ACTION_ATTR_DROP: Explicit drop action.
968 *969 *
969 * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all970 * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all
970 * fields within a header are modifiable, e.g. the IPv4 protocol and fragment971 * fields within a header are modifiable, e.g. the IPv4 protocol and fragment
@@ -1002,6 +1003,7 @@ enum ovs_action_attr { · 31 unmodified lines
1002 OVS_ACTION_ATTR_CHECK_PKT_LEN, /* Nested OVS_CHECK_PKT_LEN_ATTR_*. */1003 OVS_ACTION_ATTR_CHECK_PKT_LEN, /* Nested OVS_CHECK_PKT_LEN_ATTR_*. */
1003 OVS_ACTION_ATTR_ADD_MPLS, /* struct ovs_action_add_mpls. */1004 OVS_ACTION_ATTR_ADD_MPLS, /* struct ovs_action_add_mpls. */
1004 OVS_ACTION_ATTR_DEC_TTL, /* Nested OVS_DEC_TTL_ATTR_*. */1005 OVS_ACTION_ATTR_DEC_TTL, /* Nested OVS_DEC_TTL_ATTR_*. */
1006 OVS_ACTION_ATTR_DROP, /* u32 error code. */
1005 1007
1006 __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted1008 __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted
1007 * from userspace. */1009 * from userspace. */
include/uapi/linux/pkt_cls.h+3−0
@@ -598,6 +598,9 @@ enum { · 597 unmodified lines
598 598
599 TCA_FLOWER_KEY_CFM, /* nested */599 TCA_FLOWER_KEY_CFM, /* nested */
600 600
601 TCA_FLOWER_KEY_SPI, /* be32 */
602 TCA_FLOWER_KEY_SPI_MASK, /* be32 */
603
601 __TCA_FLOWER_MAX,604 __TCA_FLOWER_MAX,
602};605};
603 606
include/uapi/linux/pkt_sched.h+1−0
@@ -603,6 +603,7 @@ enum { · 602 unmodified lines
603 TCA_NETEM_JITTER64,603 TCA_NETEM_JITTER64,
604 TCA_NETEM_SLOT,604 TCA_NETEM_SLOT,
605 TCA_NETEM_SLOT_DIST,605 TCA_NETEM_SLOT_DIST,
606 TCA_NETEM_PRNG_SEED,
606 __TCA_NETEM_MAX,607 __TCA_NETEM_MAX,
607};608};
608 609
include/uapi/linux/smc.h+2−0
@@ -107,6 +107,8 @@ enum { · 106 unmodified lines
107enum {107enum {
108 SMC_NLA_LGR_R_V2_UNSPEC,108 SMC_NLA_LGR_R_V2_UNSPEC,
109 SMC_NLA_LGR_R_V2_DIRECT, /* u8 */109 SMC_NLA_LGR_R_V2_DIRECT, /* u8 */
110 SMC_NLA_LGR_R_V2_MAX_CONNS, /* u8 */
111 SMC_NLA_LGR_R_V2_MAX_LINKS, /* u8 */
110 __SMC_NLA_LGR_R_V2_MAX,112 __SMC_NLA_LGR_R_V2_MAX,
111 SMC_NLA_LGR_R_V2_MAX = __SMC_NLA_LGR_R_V2_MAX - 1113 SMC_NLA_LGR_R_V2_MAX = __SMC_NLA_LGR_R_V2_MAX - 1
112};114};
include/uapi/linux/virtio_net.h+14−0
@@ -56,6 +56,7 @@ · 55 unmodified lines
56#define VIRTIO_NET_F_MQ 22 /* Device supports Receive Flow56#define VIRTIO_NET_F_MQ 22 /* Device supports Receive Flow
57 * Steering */57 * Steering */
58#define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */58#define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */
59#define VIRTIO_NET_F_VQ_NOTF_COAL 52 /* Device supports virtqueue notification coalescing */
59#define VIRTIO_NET_F_NOTF_COAL 53 /* Device supports notifications coalescing */60#define VIRTIO_NET_F_NOTF_COAL 53 /* Device supports notifications coalescing */
60#define VIRTIO_NET_F_GUEST_USO4 54 /* Guest can handle USOv4 in. */61#define VIRTIO_NET_F_GUEST_USO4 54 /* Guest can handle USOv4 in. */
61#define VIRTIO_NET_F_GUEST_USO6 55 /* Guest can handle USOv6 in. */62#define VIRTIO_NET_F_GUEST_USO6 55 /* Guest can handle USOv6 in. */
@@ -391,5 +392,18 @@ struct virtio_net_ctrl_coal_rx { · 329 unmodified lines
391};392};
392 393
393#define VIRTIO_NET_CTRL_NOTF_COAL_RX_SET 1394#define VIRTIO_NET_CTRL_NOTF_COAL_RX_SET 1
395#define VIRTIO_NET_CTRL_NOTF_COAL_VQ_SET 2
396#define VIRTIO_NET_CTRL_NOTF_COAL_VQ_GET 3
397
398struct virtio_net_ctrl_coal {
399 __le32 max_packets;
400 __le32 max_usecs;
401};
402
403struct virtio_net_ctrl_coal_vq {
404 __le16 vqn;
405 __le16 reserved;
406 struct virtio_net_ctrl_coal coal;
407};
394 408
395#endif /* _UAPI_LINUX_VIRTIO_NET_H */409#endif /* _UAPI_LINUX_VIRTIO_NET_H */