mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 08:03:01 +09:00
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
...
This commit is contained in:
@@ -6,7 +6,86 @@
|
||||
#define _TRACE_HANDSHAKE_H
|
||||
|
||||
#include <linux/net.h>
|
||||
#include <net/tls_prot.h>
|
||||
#include <linux/tracepoint.h>
|
||||
#include <trace/events/net_probe_common.h>
|
||||
|
||||
#define TLS_RECORD_TYPE_LIST \
|
||||
record_type(CHANGE_CIPHER_SPEC) \
|
||||
record_type(ALERT) \
|
||||
record_type(HANDSHAKE) \
|
||||
record_type(DATA) \
|
||||
record_type(HEARTBEAT) \
|
||||
record_type(TLS12_CID) \
|
||||
record_type_end(ACK)
|
||||
|
||||
#undef record_type
|
||||
#undef record_type_end
|
||||
#define record_type(x) TRACE_DEFINE_ENUM(TLS_RECORD_TYPE_##x);
|
||||
#define record_type_end(x) TRACE_DEFINE_ENUM(TLS_RECORD_TYPE_##x);
|
||||
|
||||
TLS_RECORD_TYPE_LIST
|
||||
|
||||
#undef record_type
|
||||
#undef record_type_end
|
||||
#define record_type(x) { TLS_RECORD_TYPE_##x, #x },
|
||||
#define record_type_end(x) { TLS_RECORD_TYPE_##x, #x }
|
||||
|
||||
#define show_tls_content_type(type) \
|
||||
__print_symbolic(type, TLS_RECORD_TYPE_LIST)
|
||||
|
||||
TRACE_DEFINE_ENUM(TLS_ALERT_LEVEL_WARNING);
|
||||
TRACE_DEFINE_ENUM(TLS_ALERT_LEVEL_FATAL);
|
||||
|
||||
#define show_tls_alert_level(level) \
|
||||
__print_symbolic(level, \
|
||||
{ TLS_ALERT_LEVEL_WARNING, "Warning" }, \
|
||||
{ TLS_ALERT_LEVEL_FATAL, "Fatal" })
|
||||
|
||||
#define TLS_ALERT_DESCRIPTION_LIST \
|
||||
alert_description(CLOSE_NOTIFY) \
|
||||
alert_description(UNEXPECTED_MESSAGE) \
|
||||
alert_description(BAD_RECORD_MAC) \
|
||||
alert_description(RECORD_OVERFLOW) \
|
||||
alert_description(HANDSHAKE_FAILURE) \
|
||||
alert_description(BAD_CERTIFICATE) \
|
||||
alert_description(UNSUPPORTED_CERTIFICATE) \
|
||||
alert_description(CERTIFICATE_REVOKED) \
|
||||
alert_description(CERTIFICATE_EXPIRED) \
|
||||
alert_description(CERTIFICATE_UNKNOWN) \
|
||||
alert_description(ILLEGAL_PARAMETER) \
|
||||
alert_description(UNKNOWN_CA) \
|
||||
alert_description(ACCESS_DENIED) \
|
||||
alert_description(DECODE_ERROR) \
|
||||
alert_description(DECRYPT_ERROR) \
|
||||
alert_description(TOO_MANY_CIDS_REQUESTED) \
|
||||
alert_description(PROTOCOL_VERSION) \
|
||||
alert_description(INSUFFICIENT_SECURITY) \
|
||||
alert_description(INTERNAL_ERROR) \
|
||||
alert_description(INAPPROPRIATE_FALLBACK) \
|
||||
alert_description(USER_CANCELED) \
|
||||
alert_description(MISSING_EXTENSION) \
|
||||
alert_description(UNSUPPORTED_EXTENSION) \
|
||||
alert_description(UNRECOGNIZED_NAME) \
|
||||
alert_description(BAD_CERTIFICATE_STATUS_RESPONSE) \
|
||||
alert_description(UNKNOWN_PSK_IDENTITY) \
|
||||
alert_description(CERTIFICATE_REQUIRED) \
|
||||
alert_description_end(NO_APPLICATION_PROTOCOL)
|
||||
|
||||
#undef alert_description
|
||||
#undef alert_description_end
|
||||
#define alert_description(x) TRACE_DEFINE_ENUM(TLS_ALERT_DESC_##x);
|
||||
#define alert_description_end(x) TRACE_DEFINE_ENUM(TLS_ALERT_DESC_##x);
|
||||
|
||||
TLS_ALERT_DESCRIPTION_LIST
|
||||
|
||||
#undef alert_description
|
||||
#undef alert_description_end
|
||||
#define alert_description(x) { TLS_ALERT_DESC_##x, #x },
|
||||
#define alert_description_end(x) { TLS_ALERT_DESC_##x, #x }
|
||||
|
||||
#define show_tls_alert_description(desc) \
|
||||
__print_symbolic(desc, TLS_ALERT_DESCRIPTION_LIST)
|
||||
|
||||
DECLARE_EVENT_CLASS(handshake_event_class,
|
||||
TP_PROTO(
|
||||
@@ -106,6 +185,47 @@ DECLARE_EVENT_CLASS(handshake_error_class,
|
||||
), \
|
||||
TP_ARGS(net, req, sk, err))
|
||||
|
||||
DECLARE_EVENT_CLASS(handshake_alert_class,
|
||||
TP_PROTO(
|
||||
const struct sock *sk,
|
||||
unsigned char level,
|
||||
unsigned char description
|
||||
),
|
||||
TP_ARGS(sk, level, description),
|
||||
TP_STRUCT__entry(
|
||||
/* sockaddr_in6 is always bigger than sockaddr_in */
|
||||
__array(__u8, saddr, sizeof(struct sockaddr_in6))
|
||||
__array(__u8, daddr, sizeof(struct sockaddr_in6))
|
||||
__field(unsigned int, netns_ino)
|
||||
__field(unsigned long, level)
|
||||
__field(unsigned long, description)
|
||||
),
|
||||
TP_fast_assign(
|
||||
const struct inet_sock *inet = inet_sk(sk);
|
||||
|
||||
memset(__entry->saddr, 0, sizeof(struct sockaddr_in6));
|
||||
memset(__entry->daddr, 0, sizeof(struct sockaddr_in6));
|
||||
TP_STORE_ADDR_PORTS(__entry, inet, sk);
|
||||
|
||||
__entry->netns_ino = sock_net(sk)->ns.inum;
|
||||
__entry->level = level;
|
||||
__entry->description = description;
|
||||
),
|
||||
TP_printk("src=%pISpc dest=%pISpc %s: %s",
|
||||
__entry->saddr, __entry->daddr,
|
||||
show_tls_alert_level(__entry->level),
|
||||
show_tls_alert_description(__entry->description)
|
||||
)
|
||||
);
|
||||
#define DEFINE_HANDSHAKE_ALERT(name) \
|
||||
DEFINE_EVENT(handshake_alert_class, name, \
|
||||
TP_PROTO( \
|
||||
const struct sock *sk, \
|
||||
unsigned char level, \
|
||||
unsigned char description \
|
||||
), \
|
||||
TP_ARGS(sk, level, description))
|
||||
|
||||
|
||||
/*
|
||||
* Request lifetime events
|
||||
@@ -154,6 +274,46 @@ DEFINE_HANDSHAKE_ERROR(handshake_cmd_accept_err);
|
||||
DEFINE_HANDSHAKE_FD_EVENT(handshake_cmd_done);
|
||||
DEFINE_HANDSHAKE_ERROR(handshake_cmd_done_err);
|
||||
|
||||
/*
|
||||
* TLS Record events
|
||||
*/
|
||||
|
||||
TRACE_EVENT(tls_contenttype,
|
||||
TP_PROTO(
|
||||
const struct sock *sk,
|
||||
unsigned char type
|
||||
),
|
||||
TP_ARGS(sk, type),
|
||||
TP_STRUCT__entry(
|
||||
/* sockaddr_in6 is always bigger than sockaddr_in */
|
||||
__array(__u8, saddr, sizeof(struct sockaddr_in6))
|
||||
__array(__u8, daddr, sizeof(struct sockaddr_in6))
|
||||
__field(unsigned int, netns_ino)
|
||||
__field(unsigned long, type)
|
||||
),
|
||||
TP_fast_assign(
|
||||
const struct inet_sock *inet = inet_sk(sk);
|
||||
|
||||
memset(__entry->saddr, 0, sizeof(struct sockaddr_in6));
|
||||
memset(__entry->daddr, 0, sizeof(struct sockaddr_in6));
|
||||
TP_STORE_ADDR_PORTS(__entry, inet, sk);
|
||||
|
||||
__entry->netns_ino = sock_net(sk)->ns.inum;
|
||||
__entry->type = type;
|
||||
),
|
||||
TP_printk("src=%pISpc dest=%pISpc %s",
|
||||
__entry->saddr, __entry->daddr,
|
||||
show_tls_content_type(__entry->type)
|
||||
)
|
||||
);
|
||||
|
||||
/*
|
||||
* TLS Alert events
|
||||
*/
|
||||
|
||||
DEFINE_HANDSHAKE_ALERT(tls_alert_send);
|
||||
DEFINE_HANDSHAKE_ALERT(tls_alert_recv);
|
||||
|
||||
#endif /* _TRACE_HANDSHAKE_H */
|
||||
|
||||
#include <trace/define_trace.h>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include <linux/tracepoint.h>
|
||||
|
||||
#include <trace/events/mmflags.h>
|
||||
#include <net/page_pool.h>
|
||||
#include <net/page_pool/types.h>
|
||||
|
||||
TRACE_EVENT(page_pool_release,
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include <linux/filter.h>
|
||||
#include <linux/tracepoint.h>
|
||||
#include <linux/bpf.h>
|
||||
#include <net/xdp.h>
|
||||
|
||||
#define __XDP_ACT_MAP(FN) \
|
||||
FN(ABORTED) \
|
||||
@@ -404,6 +405,23 @@ TRACE_EVENT(mem_return_failed,
|
||||
)
|
||||
);
|
||||
|
||||
TRACE_EVENT(bpf_xdp_link_attach_failed,
|
||||
|
||||
TP_PROTO(const char *msg),
|
||||
|
||||
TP_ARGS(msg),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__string(msg, msg)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__assign_str(msg, msg);
|
||||
),
|
||||
|
||||
TP_printk("errmsg=%s", __get_str(msg))
|
||||
);
|
||||
|
||||
#endif /* _TRACE_XDP_H */
|
||||
|
||||
#include <trace/define_trace.h>
|
||||
|
||||
Reference in New Issue
Block a user