Skip to content

Commit bd6c11b

Browse files
committed
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 ...
2 parents 68cf017 + c873512 commit bd6c11b

File tree

1,855 files changed

+109626
-46103
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,855 files changed

+109626
-46103
lines changed

Documentation/bpf/bpf_design_QA.rst

-5
Original file line numberDiff line numberDiff line change
@@ -140,11 +140,6 @@ A: Because if we picked one-to-one relationship to x64 it would have made
140140
it more complicated to support on arm64 and other archs. Also it
141141
needs div-by-zero runtime check.
142142

143-
Q: Why there is no BPF_SDIV for signed divide operation?
144-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
145-
A: Because it would be rarely used. llvm errors in such case and
146-
prints a suggestion to use unsigned divide instead.
147-
148143
Q: Why BPF has implicit prologue and epilogue?
149144
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
150145
A: Because architectures like sparc have register windows and in general

Documentation/bpf/bpf_devel_QA.rst

+5-5
Original file line numberDiff line numberDiff line change
@@ -635,12 +635,12 @@ test coverage.
635635

636636
Q: clang flag for target bpf?
637637
-----------------------------
638-
Q: In some cases clang flag ``-target bpf`` is used but in other cases the
638+
Q: In some cases clang flag ``--target=bpf`` is used but in other cases the
639639
default clang target, which matches the underlying architecture, is used.
640640
What is the difference and when I should use which?
641641

642642
A: Although LLVM IR generation and optimization try to stay architecture
643-
independent, ``-target <arch>`` still has some impact on generated code:
643+
independent, ``--target=<arch>`` still has some impact on generated code:
644644

645645
- BPF program may recursively include header file(s) with file scope
646646
inline assembly codes. The default target can handle this well,
@@ -658,7 +658,7 @@ independent, ``-target <arch>`` still has some impact on generated code:
658658
The clang option ``-fno-jump-tables`` can be used to disable
659659
switch table generation.
660660

661-
- For clang ``-target bpf``, it is guaranteed that pointer or long /
661+
- For clang ``--target=bpf``, it is guaranteed that pointer or long /
662662
unsigned long types will always have a width of 64 bit, no matter
663663
whether underlying clang binary or default target (or kernel) is
664664
32 bit. However, when native clang target is used, then it will
@@ -668,7 +668,7 @@ independent, ``-target <arch>`` still has some impact on generated code:
668668
while the BPF LLVM back end still operates in 64 bit. The native
669669
target is mostly needed in tracing for the case of walking ``pt_regs``
670670
or other kernel structures where CPU's register width matters.
671-
Otherwise, ``clang -target bpf`` is generally recommended.
671+
Otherwise, ``clang --target=bpf`` is generally recommended.
672672

673673
You should use default target when:
674674

@@ -685,7 +685,7 @@ when:
685685
into these structures is verified by the BPF verifier and may result
686686
in verification failures if the native architecture is not aligned with
687687
the BPF architecture, e.g. 64-bit. An example of this is
688-
BPF_PROG_TYPE_SK_MSG require ``-target bpf``
688+
BPF_PROG_TYPE_SK_MSG require ``--target=bpf``
689689

690690

691691
.. Links

Documentation/bpf/btf.rst

+2-2
Original file line numberDiff line numberDiff line change
@@ -990,7 +990,7 @@ format.::
990990
} g2;
991991
int main() { return 0; }
992992
int test() { return 0; }
993-
-bash-4.4$ clang -c -g -O2 -target bpf t2.c
993+
-bash-4.4$ clang -c -g -O2 --target=bpf t2.c
994994
-bash-4.4$ readelf -S t2.o
995995
......
996996
[ 8] .BTF PROGBITS 0000000000000000 00000247
@@ -1000,7 +1000,7 @@ format.::
10001000
[10] .rel.BTF.ext REL 0000000000000000 000007e0
10011001
0000000000000040 0000000000000010 16 9 8
10021002
......
1003-
-bash-4.4$ clang -S -g -O2 -target bpf t2.c
1003+
-bash-4.4$ clang -S -g -O2 --target=bpf t2.c
10041004
-bash-4.4$ cat t2.s
10051005
......
10061006
.section .BTF,"",@progbits

Documentation/bpf/index.rst

+1-2
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ that goes into great technical depth about the BPF Architecture.
1212
.. toctree::
1313
:maxdepth: 1
1414

15-
instruction-set
1615
verifier
1716
libbpf/index
17+
standardization/index
1818
btf
1919
faq
2020
syscall_api
@@ -29,7 +29,6 @@ that goes into great technical depth about the BPF Architecture.
2929
bpf_licensing
3030
test_debug
3131
clang-notes
32-
linux-notes
3332
other
3433
redirect
3534

Documentation/bpf/llvm_reloc.rst

+3-3
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ For example, for the following code::
2828
return g1 + g2 + l1 + l2;
2929
}
3030

31-
Compiled with ``clang -target bpf -O2 -c test.c``, the following is
31+
Compiled with ``clang --target=bpf -O2 -c test.c``, the following is
3232
the code with ``llvm-objdump -dr test.o``::
3333

3434
0: 18 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 r1 = 0 ll
@@ -157,7 +157,7 @@ and ``call`` instructions. For example::
157157
return gfunc(a, b) + lfunc(a, b) + global;
158158
}
159159

160-
Compiled with ``clang -target bpf -O2 -c test.c``, we will have
160+
Compiled with ``clang --target=bpf -O2 -c test.c``, we will have
161161
following code with `llvm-objdump -dr test.o``::
162162

163163
Disassembly of section .text:
@@ -203,7 +203,7 @@ The following is an example to show how R_BPF_64_ABS64 could be generated::
203203
int global() { return 0; }
204204
struct t { void *g; } gbl = { global };
205205

206-
Compiled with ``clang -target bpf -O2 -g -c test.c``, we will see a
206+
Compiled with ``clang --target=bpf -O2 -g -c test.c``, we will see a
207207
relocation below in ``.data`` section with command
208208
``llvm-readelf -r test.o``::
209209

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
.. SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
2+
3+
===================
4+
BPF Standardization
5+
===================
6+
7+
This directory contains documents that are being iterated on as part of the BPF
8+
standardization effort with the IETF. See the `IETF BPF Working Group`_ page
9+
for the working group charter, documents, and more.
10+
11+
.. toctree::
12+
:maxdepth: 1
13+
14+
instruction-set
15+
linux-notes
16+
17+
.. Links:
18+
.. _IETF BPF Working Group: https://datatracker.ietf.org/wg/bpf/about/

0 commit comments

Comments
 (0)