From 65702a481af0ae8a3aadd2ba6a39cee1ed450f74 Mon Sep 17 00:00:00 2001 From: h00013079 Date: Fri, 7 Jun 2024 15:40:06 +0800 Subject: [PATCH] ANDROID: GKI: net: add vendor hook for network quality estimation Add vendor hook to support network quality estimation. 1.android_vh_tcp_connect To save the device name when TCP connect request is sent. Bug: 345643775 Change-Id: I9e2472565ee1b5653e2bc6c541e0d61e0c89d3ab Signed-off-by: h00013079 (cherry picked from commit 9842b4145bac27ded1b112b3f90cb865d1598182) --- drivers/android/vendor_hooks.c | 1 + include/trace/hooks/net.h | 2 ++ net/ipv4/tcp_output.c | 4 ++++ 3 files changed, 7 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 140797269127..028d296627ed 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -182,6 +182,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_panic_unhandled); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_arm64_serror_panic); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_sea); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tcp_write_timeout_estab_retrans); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_tcp_connect); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_inet_csk_clone_lock); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_capacity_show); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_init); diff --git a/include/trace/hooks/net.h b/include/trace/hooks/net.h index 04844c0ced1e..fe589c2ab245 100644 --- a/include/trace/hooks/net.h +++ b/include/trace/hooks/net.h @@ -17,6 +17,8 @@ DECLARE_HOOK(android_vh_ptype_head, struct sock; DECLARE_HOOK(android_vh_tcp_write_timeout_estab_retrans, TP_PROTO(struct sock *sk), TP_ARGS(sk)); +DECLARE_HOOK(android_vh_tcp_connect, + TP_PROTO(struct sk_buff *skb), TP_ARGS(skb)); struct request_sock; DECLARE_HOOK(android_vh_inet_csk_clone_lock, TP_PROTO(struct sock *newsk, const struct request_sock *req), TP_ARGS(newsk, req)); diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 724c8cd4adf3..4173bb91155c 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -48,6 +48,7 @@ #include #include +#include /* Refresh clocks of a TCP socket, * ensuring monotically increasing values. @@ -4152,6 +4153,9 @@ int tcp_connect(struct sock *sk) */ WRITE_ONCE(tp->snd_nxt, tp->write_seq); tp->pushed_seq = tp->write_seq; + + trace_android_vh_tcp_connect(buff); + buff = tcp_send_head(sk); if (unlikely(buff)) { WRITE_ONCE(tp->snd_nxt, TCP_SKB_CB(buff)->seq);