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 ...
Showing the changes to include/uapi/linux (14 of 1855 files). Show all
Unified · Split
| @@ -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_TYPE | 1043 | __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 | ||
| 1065 | enum 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 command | 1075 | /* 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, the | 1128 | /* If BPF_F_STRICT_ALIGNMENT is used in BPF_PROG_LOAD command, the |
| 1109 | * verifier will perform strict alignment checking as if the kernel | 1129 | * 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 for | 1188 | /* 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) | 1191 | enum { |
| 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 | */ | ||
| 1198 | enum { | ||
| 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 have | 1207 | /* 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 eBPF | 1478 | __u32 replace_bpf_fd; |
| 1442 | * program to replace if | 1479 | union { |
| 1443 | * BPF_F_REPLACE is used | 1480 | __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 example | 4224 | * **-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 | * Description | 4228 | * Description |
| 4167 | * Helper is overloaded depending on BPF program type. This | 4229 | * 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 | * Description | 5107 | * 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 | * Return | 5113 | * 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 | * Description | 5119 | * 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 | */ | ||
| 6263 | enum tcx_action_base { | ||
| 6264 | TCX_NEXT = -1, | ||
| 6265 | TCX_PASS = 0, | ||
| 6266 | TCX_DROP = 2, | ||
| 6267 | TCX_REDIRECT = 7, | ||
| 6268 | }; | ||
| 6269 | |||
| 6190 | struct bpf_xdp_sock { | 6270 | struct 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 | |||
| 7012 | struct bpf_list_node { | 7126 | struct 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 | ||
| 7017 | struct bpf_rb_root { | 7132 | struct 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 | ||
| 7028 | struct bpf_refcount { | 7144 | struct bpf_refcount { |
| @@ -30,6 +30,49 @@ enum proc_cn_mcast_op { · 29 unmodified lines | |||
| 30 | PROC_CN_MCAST_IGNORE = 2 | 30 | 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 | */ | ||
| 42 | enum 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 | |||
| 65 | struct proc_input { | ||
| 66 | enum proc_cn_mcast_op mcast_op; | ||
| 67 | enum proc_cn_event event_type; | ||
| 68 | }; | ||
| 69 | |||
| 70 | static 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 process | 77 | * From the user's point of view, the process |
| 35 | * ID is the thread group ID and thread ID is the internal | 78 | * 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 | ||
| 46 | struct proc_event { | 89 | struct 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 */ |
| @@ -661,6 +661,8 @@ enum devlink_resource_unit { · 660 unmodified lines | |||
| 661 | enum devlink_port_fn_attr_cap { | 661 | enum 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 | ||
| 673 | enum devlink_port_function_attr { | 677 | enum devlink_port_function_attr { |
| 674 | DEVLINK_PORT_FUNCTION_ATTR_UNSPEC, | 678 | DEVLINK_PORT_FUNCTION_ATTR_UNSPEC, |
| @@ -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_MAX | 574 | __IFLA_BRPORT_MAX |
| 574 | }; | 575 | }; |
| 575 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) | 576 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) |
| @@ -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 */ |
| @@ -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_MAX | 202 | DEVCONF_MAX |
| 202 | }; | 203 | }; |
| 203 | 204 | ||
| @@ -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 | * |
| @@ -11,7 +11,7 @@ · 10 unmodified lines | |||
| 11 | 11 | ||
| 12 | /** | 12 | /** |
| 13 | * enum netdev_xdp_act | 13 | * enum netdev_xdp_act |
| 14 | * @NETDEV_XDP_ACT_BASIC: XDP feautues set supported by all drivers | 14 | * @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_REDIRECT | 16 | * @NETDEV_XDP_ACT_REDIRECT: The netdev supports XDP_REDIRECT |
| 17 | * @NETDEV_XDP_ACT_NDO_XMIT: This feature informs if netdev implements | 17 | * @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) |
| @@ -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 | ||
| 135 | struct ebt_entry_watcher { | 135 | struct 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 | ||
| 148 | struct ebt_entry_target { | 148 | struct 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 | ||
| 194 | static __inline__ struct ebt_entry_target * | 196 | static __inline__ struct ebt_entry_target * |
| @@ -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 value | 965 | * 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_MPLS | 966 | * 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 all | 970 | * 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 fragment | 971 | * 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 accepted | 1008 | __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted |
| 1007 | * from userspace. */ | 1009 | * from userspace. */ |
| @@ -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 | ||
| @@ -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 | ||
| @@ -107,6 +107,8 @@ enum { · 106 unmodified lines | |||
| 107 | enum { | 107 | enum { |
| 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 - 1 | 113 | SMC_NLA_LGR_R_V2_MAX = __SMC_NLA_LGR_R_V2_MAX - 1 |
| 112 | }; | 114 | }; |
| @@ -56,6 +56,7 @@ · 55 unmodified lines | |||
| 56 | #define VIRTIO_NET_F_MQ 22 /* Device supports Receive Flow | 56 | #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 1 | 394 | #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 | |||
| 398 | struct virtio_net_ctrl_coal { | ||
| 399 | __le32 max_packets; | ||
| 400 | __le32 max_usecs; | ||
| 401 | }; | ||
| 402 | |||
| 403 | struct 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 */ |