forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-04 1543e317f1da31b75942316931e8f491a8920811
kernel/drivers/net/ethernet/mellanox/mlx5/core/diag/fs_tracepoint.c
....@@ -76,58 +76,59 @@
7676 .v = MLX5_GET(fte_match_set_lyr_2_4, value, dmac_47_16) << 16 |
7777 MLX5_GET(fte_match_set_lyr_2_4, value, dmac_15_0)};
7878 MASK_VAL_L2(u16, ethertype, ethertype);
79
+ MASK_VAL_L2(u8, ip_version, ip_version);
7980
8081 PRINT_MASKED_VALP(smac, u8 *, p, "%pM");
8182 PRINT_MASKED_VALP(dmac, u8 *, p, "%pM");
8283 PRINT_MASKED_VAL(ethertype, p, "%04x");
8384
84
- if (ethertype.m == 0xffff) {
85
- if (ethertype.v == ETH_P_IP) {
85
+ if ((ethertype.m == 0xffff && ethertype.v == ETH_P_IP) ||
86
+ (ip_version.m == 0xf && ip_version.v == 4)) {
8687 #define MASK_VAL_L2_BE(type, name, fld) \
8788 MASK_VAL_BE(type, fte_match_set_lyr_2_4, name, mask, value, fld)
88
- MASK_VAL_L2_BE(u32, src_ipv4,
89
- src_ipv4_src_ipv6.ipv4_layout.ipv4);
90
- MASK_VAL_L2_BE(u32, dst_ipv4,
91
- dst_ipv4_dst_ipv6.ipv4_layout.ipv4);
89
+ MASK_VAL_L2_BE(u32, src_ipv4,
90
+ src_ipv4_src_ipv6.ipv4_layout.ipv4);
91
+ MASK_VAL_L2_BE(u32, dst_ipv4,
92
+ dst_ipv4_dst_ipv6.ipv4_layout.ipv4);
9293
93
- PRINT_MASKED_VALP(src_ipv4, typeof(&src_ipv4.v), p,
94
- "%pI4");
95
- PRINT_MASKED_VALP(dst_ipv4, typeof(&dst_ipv4.v), p,
96
- "%pI4");
97
- } else if (ethertype.v == ETH_P_IPV6) {
98
- static const struct in6_addr full_ones = {
99
- .in6_u.u6_addr32 = {__constant_htonl(0xffffffff),
100
- __constant_htonl(0xffffffff),
101
- __constant_htonl(0xffffffff),
102
- __constant_htonl(0xffffffff)},
103
- };
104
- DECLARE_MASK_VAL(struct in6_addr, src_ipv6);
105
- DECLARE_MASK_VAL(struct in6_addr, dst_ipv6);
94
+ PRINT_MASKED_VALP(src_ipv4, typeof(&src_ipv4.v), p,
95
+ "%pI4");
96
+ PRINT_MASKED_VALP(dst_ipv4, typeof(&dst_ipv4.v), p,
97
+ "%pI4");
98
+ } else if ((ethertype.m == 0xffff && ethertype.v == ETH_P_IPV6) ||
99
+ (ip_version.m == 0xf && ip_version.v == 6)) {
100
+ static const struct in6_addr full_ones = {
101
+ .in6_u.u6_addr32 = {__constant_htonl(0xffffffff),
102
+ __constant_htonl(0xffffffff),
103
+ __constant_htonl(0xffffffff),
104
+ __constant_htonl(0xffffffff)},
105
+ };
106
+ DECLARE_MASK_VAL(struct in6_addr, src_ipv6);
107
+ DECLARE_MASK_VAL(struct in6_addr, dst_ipv6);
106108
107
- memcpy(src_ipv6.m.in6_u.u6_addr8,
108
- MLX5_ADDR_OF(fte_match_set_lyr_2_4, mask,
109
- src_ipv4_src_ipv6.ipv6_layout.ipv6),
110
- sizeof(src_ipv6.m));
111
- memcpy(dst_ipv6.m.in6_u.u6_addr8,
112
- MLX5_ADDR_OF(fte_match_set_lyr_2_4, mask,
113
- dst_ipv4_dst_ipv6.ipv6_layout.ipv6),
114
- sizeof(dst_ipv6.m));
115
- memcpy(src_ipv6.v.in6_u.u6_addr8,
116
- MLX5_ADDR_OF(fte_match_set_lyr_2_4, value,
117
- src_ipv4_src_ipv6.ipv6_layout.ipv6),
118
- sizeof(src_ipv6.v));
119
- memcpy(dst_ipv6.v.in6_u.u6_addr8,
120
- MLX5_ADDR_OF(fte_match_set_lyr_2_4, value,
121
- dst_ipv4_dst_ipv6.ipv6_layout.ipv6),
122
- sizeof(dst_ipv6.v));
109
+ memcpy(src_ipv6.m.in6_u.u6_addr8,
110
+ MLX5_ADDR_OF(fte_match_set_lyr_2_4, mask,
111
+ src_ipv4_src_ipv6.ipv6_layout.ipv6),
112
+ sizeof(src_ipv6.m));
113
+ memcpy(dst_ipv6.m.in6_u.u6_addr8,
114
+ MLX5_ADDR_OF(fte_match_set_lyr_2_4, mask,
115
+ dst_ipv4_dst_ipv6.ipv6_layout.ipv6),
116
+ sizeof(dst_ipv6.m));
117
+ memcpy(src_ipv6.v.in6_u.u6_addr8,
118
+ MLX5_ADDR_OF(fte_match_set_lyr_2_4, value,
119
+ src_ipv4_src_ipv6.ipv6_layout.ipv6),
120
+ sizeof(src_ipv6.v));
121
+ memcpy(dst_ipv6.v.in6_u.u6_addr8,
122
+ MLX5_ADDR_OF(fte_match_set_lyr_2_4, value,
123
+ dst_ipv4_dst_ipv6.ipv6_layout.ipv6),
124
+ sizeof(dst_ipv6.v));
123125
124
- if (!memcmp(&src_ipv6.m, &full_ones, sizeof(full_ones)))
125
- trace_seq_printf(p, "src_ipv6=%pI6 ",
126
- &src_ipv6.v);
127
- if (!memcmp(&dst_ipv6.m, &full_ones, sizeof(full_ones)))
128
- trace_seq_printf(p, "dst_ipv6=%pI6 ",
129
- &dst_ipv6.v);
130
- }
126
+ if (!memcmp(&src_ipv6.m, &full_ones, sizeof(full_ones)))
127
+ trace_seq_printf(p, "src_ipv6=%pI6 ",
128
+ &src_ipv6.v);
129
+ if (!memcmp(&dst_ipv6.m, &full_ones, sizeof(full_ones)))
130
+ trace_seq_printf(p, "dst_ipv6=%pI6 ",
131
+ &dst_ipv6.v);
131132 }
132133
133134 #define PRINT_MASKED_VAL_L2(type, name, fld, p, format) {\
....@@ -161,10 +162,10 @@
161162 PRINT_MASKED_VAL(name, p, format); \
162163 }
163164 DECLARE_MASK_VAL(u64, gre_key) = {
164
- .m = MLX5_GET(fte_match_set_misc, mask, gre_key_h) << 8 |
165
- MLX5_GET(fte_match_set_misc, mask, gre_key_l),
166
- .v = MLX5_GET(fte_match_set_misc, value, gre_key_h) << 8 |
167
- MLX5_GET(fte_match_set_misc, value, gre_key_l)};
165
+ .m = MLX5_GET(fte_match_set_misc, mask, gre_key.nvgre.hi) << 8 |
166
+ MLX5_GET(fte_match_set_misc, mask, gre_key.nvgre.lo),
167
+ .v = MLX5_GET(fte_match_set_misc, value, gre_key.nvgre.hi) << 8 |
168
+ MLX5_GET(fte_match_set_misc, value, gre_key.nvgre.lo)};
168169
169170 PRINT_MASKED_VAL(gre_key, p, "%llu");
170171 PRINT_MASKED_VAL_MISC(u32, source_sqn, source_sqn, p, "%u");
....@@ -258,6 +259,8 @@
258259 return ret;
259260 }
260261
262
+EXPORT_TRACEPOINT_SYMBOL(mlx5_fs_add_ft);
263
+EXPORT_TRACEPOINT_SYMBOL(mlx5_fs_del_ft);
261264 EXPORT_TRACEPOINT_SYMBOL(mlx5_fs_add_fg);
262265 EXPORT_TRACEPOINT_SYMBOL(mlx5_fs_del_fg);
263266 EXPORT_TRACEPOINT_SYMBOL(mlx5_fs_set_fte);