Skip to content

Commit a1e9203

Browse files
pjvuurendavem330
authored andcommitted
nfp: add IPv4 ttl and tos match offloading support
Previously matching on IPv4 ttl and tos fields were not offloaded. This patch enables offloading IPv4 ttl and tos as match fields. Signed-off-by: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com> Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: Simon Horman <simon.horman@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent bb055c1 commit a1e9203

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

drivers/net/ethernet/netronome/nfp/flower/match.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,6 @@ nfp_flower_compile_ipv4(struct nfp_flower_ipv4 *frame,
156156
struct flow_dissector_key_ipv4_addrs *addr;
157157
struct flow_dissector_key_basic *basic;
158158

159-
/* Wildcard TOS/TTL for now. */
160159
memset(frame, 0, sizeof(struct nfp_flower_ipv4));
161160

162161
if (dissector_uses_key(flow->dissector,
@@ -174,6 +173,16 @@ nfp_flower_compile_ipv4(struct nfp_flower_ipv4 *frame,
174173
target);
175174
frame->proto = basic->ip_proto;
176175
}
176+
177+
if (dissector_uses_key(flow->dissector, FLOW_DISSECTOR_KEY_IP)) {
178+
struct flow_dissector_key_ip *flow_ip;
179+
180+
flow_ip = skb_flow_dissector_target(flow->dissector,
181+
FLOW_DISSECTOR_KEY_IP,
182+
target);
183+
frame->tos = flow_ip->tos;
184+
frame->ttl = flow_ip->ttl;
185+
}
177186
}
178187

179188
static void

drivers/net/ethernet/netronome/nfp/flower/offload.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -216,10 +216,6 @@ nfp_flower_calculate_key_layers(struct nfp_fl_key_ls *ret_key_ls,
216216
/* Ethernet type is present in the key. */
217217
switch (key_basic->n_proto) {
218218
case cpu_to_be16(ETH_P_IP):
219-
if (mask_ip && mask_ip->tos)
220-
return -EOPNOTSUPP;
221-
if (mask_ip && mask_ip->ttl)
222-
return -EOPNOTSUPP;
223219
key_layer |= NFP_FLOWER_LAYER_IPV4;
224220
key_size += sizeof(struct nfp_flower_ipv4);
225221
break;

0 commit comments

Comments
 (0)