trace: adjust TP_STORE_ADDR_PORTS_SKB() parameters
authorJason Xing <kernelxing@tencent.com>
Mon, 1 Apr 2024 07:36:04 +0000 (15:36 +0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 4 Apr 2024 02:26:14 +0000 (19:26 -0700)
Introducing entry_saddr and entry_daddr parameters in this macro
for later use can help us record the reverse 4-tuple by analyzing
the 4-tuple of the incoming skb when receiving.

Signed-off-by: Jason Xing <kernelxing@tencent.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/20240401073605.37335-2-kerneljasonxing@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/trace/events/net_probe_common.h
include/trace/events/tcp.h
include/trace/events/udp.h

index 5e33f91bdea373938273859f2f9d2a3fd13681f8..976a58364bff15bfcc327abecfb2d77b39abc666 100644 (file)
        TP_STORE_V4MAPPED(__entry, saddr, daddr)
 #endif
 
-#define TP_STORE_ADDR_PORTS_SKB_V4(__entry, skb, protoh)               \
+#define TP_STORE_ADDR_PORTS_SKB_V4(skb, protoh, entry_saddr, entry_daddr) \
        do {                                                            \
-               struct sockaddr_in *v4 = (void *)__entry->saddr;        \
+               struct sockaddr_in *v4 = (void *)entry_saddr;           \
                                                                        \
                v4->sin_family = AF_INET;                               \
                v4->sin_port = protoh->source;                          \
                v4->sin_addr.s_addr = ip_hdr(skb)->saddr;               \
-               v4 = (void *)__entry->daddr;                            \
+               v4 = (void *)entry_daddr;                               \
                v4->sin_family = AF_INET;                               \
                v4->sin_port = protoh->dest;                            \
                v4->sin_addr.s_addr = ip_hdr(skb)->daddr;               \
 
 #if IS_ENABLED(CONFIG_IPV6)
 
-#define TP_STORE_ADDR_PORTS_SKB(__entry, skb, protoh)                  \
+#define TP_STORE_ADDR_PORTS_SKB(skb, protoh, entry_saddr, entry_daddr) \
        do {                                                            \
                const struct iphdr *iph = ip_hdr(skb);                  \
                                                                        \
                if (iph->version == 6) {                                \
-                       struct sockaddr_in6 *v6 = (void *)__entry->saddr; \
+                       struct sockaddr_in6 *v6 = (void *)entry_saddr;  \
                                                                        \
                        v6->sin6_family = AF_INET6;                     \
                        v6->sin6_port = protoh->source;                 \
                        v6->sin6_addr = ipv6_hdr(skb)->saddr;           \
-                       v6 = (void *)__entry->daddr;                    \
+                       v6 = (void *)entry_daddr;                       \
                        v6->sin6_family = AF_INET6;                     \
                        v6->sin6_port = protoh->dest;                   \
                        v6->sin6_addr = ipv6_hdr(skb)->daddr;           \
                } else                                                  \
-                       TP_STORE_ADDR_PORTS_SKB_V4(__entry, skb, protoh); \
+                       TP_STORE_ADDR_PORTS_SKB_V4(skb, protoh,         \
+                                                  entry_saddr,         \
+                                                  entry_daddr);        \
        } while (0)
 
 #else
 
-#define TP_STORE_ADDR_PORTS_SKB(__entry, skb, protoh)          \
-       TP_STORE_ADDR_PORTS_SKB_V4(__entry, skb, protoh)
+#define TP_STORE_ADDR_PORTS_SKB(skb, protoh, entry_saddr, entry_daddr) \
+       TP_STORE_ADDR_PORTS_SKB_V4(skb, protoh, entry_saddr, entry_daddr)
 
 #endif
 
index 1db95175c1e5288ce2688ed99f45502c7a5ff1e2..cf14b6fcbeed7f0280b085b6d5e6638887c3fb03 100644 (file)
@@ -295,7 +295,7 @@ DECLARE_EVENT_CLASS(tcp_event_skb,
                memset(__entry->saddr, 0, sizeof(struct sockaddr_in6));
                memset(__entry->daddr, 0, sizeof(struct sockaddr_in6));
 
-               TP_STORE_ADDR_PORTS_SKB(__entry, skb, th);
+               TP_STORE_ADDR_PORTS_SKB(skb, th, __entry->saddr, __entry->daddr);
        ),
 
        TP_printk("skbaddr=%p src=%pISpc dest=%pISpc",
index 62bebe2a6ecebd95ec9eac4961ae3816d33b102f..6142be4068e29b3cd2e9a748b46eb112ea2b09e2 100644 (file)
@@ -38,7 +38,7 @@ TRACE_EVENT(udp_fail_queue_rcv_skb,
                memset(__entry->saddr, 0, sizeof(struct sockaddr_in6));
                memset(__entry->daddr, 0, sizeof(struct sockaddr_in6));
 
-               TP_STORE_ADDR_PORTS_SKB(__entry, skb, uh);
+               TP_STORE_ADDR_PORTS_SKB(skb, uh, __entry->saddr, __entry->daddr);
        ),
 
        TP_printk("rc=%d family=%s src=%pISpc dest=%pISpc", __entry->rc,