diff options
author | Jason Xing <kernelxing@tencent.com> | 2024-03-25 06:43:45 +0300 |
---|---|---|
committer | Paolo Abeni <pabeni@redhat.com> | 2024-03-26 13:12:05 +0300 |
commit | b3af9045b482925c770f56f81d68c0b9bc6c5049 (patch) | |
tree | d5d48857487cf35f51ae71d9c59d719858a7d3a1 /include/trace/events/net_probe_common.h | |
parent | 75925fafb4f629b1246d4711f022e82590152355 (diff) | |
download | linux-b3af9045b482925c770f56f81d68c0b9bc6c5049.tar.xz |
trace: move to TP_STORE_ADDRS related macro to net_probe_common.h
Put the macro into another standalone file for better extension.
Some tracepoints can use this common part in the future.
Signed-off-by: Jason Xing <kernelxing@tencent.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'include/trace/events/net_probe_common.h')
-rw-r--r-- | include/trace/events/net_probe_common.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/include/trace/events/net_probe_common.h b/include/trace/events/net_probe_common.h index 3930119cab08..b1f9a4d3ee13 100644 --- a/include/trace/events/net_probe_common.h +++ b/include/trace/events/net_probe_common.h @@ -41,4 +41,33 @@ #endif +#define TP_STORE_V4MAPPED(__entry, saddr, daddr) \ + do { \ + struct in6_addr *pin6; \ + \ + pin6 = (struct in6_addr *)__entry->saddr_v6; \ + ipv6_addr_set_v4mapped(saddr, pin6); \ + pin6 = (struct in6_addr *)__entry->daddr_v6; \ + ipv6_addr_set_v4mapped(daddr, pin6); \ + } while (0) + +#if IS_ENABLED(CONFIG_IPV6) +#define TP_STORE_ADDRS(__entry, saddr, daddr, saddr6, daddr6) \ + do { \ + if (sk->sk_family == AF_INET6) { \ + struct in6_addr *pin6; \ + \ + pin6 = (struct in6_addr *)__entry->saddr_v6; \ + *pin6 = saddr6; \ + pin6 = (struct in6_addr *)__entry->daddr_v6; \ + *pin6 = daddr6; \ + } else { \ + TP_STORE_V4MAPPED(__entry, saddr, daddr); \ + } \ + } while (0) +#else +#define TP_STORE_ADDRS(__entry, saddr, daddr, saddr6, daddr6) \ + TP_STORE_V4MAPPED(__entry, saddr, daddr) +#endif + #endif |