[PATCH v4 18/25] net/nfp: support DST IPv4 flow action
Chaoyong He
chaoyong.he at corigine.com
Tue Oct 18 13:27:07 CEST 2022
Add the corresponding logics to support the offload of
set dest IPv4 address action.
Signed-off-by: Chaoyong He <chaoyong.he at corigine.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund at corigine.com>
---
doc/guides/nics/features/nfp.ini | 1 +
drivers/net/nfp/nfp_flow.c | 16 ++++++++++++++++
2 files changed, 17 insertions(+)
diff --git a/doc/guides/nics/features/nfp.ini b/doc/guides/nics/features/nfp.ini
index dc5c676..9bcc8d6 100644
--- a/doc/guides/nics/features/nfp.ini
+++ b/doc/guides/nics/features/nfp.ini
@@ -45,6 +45,7 @@ of_push_vlan = Y
of_set_vlan_pcp = Y
of_set_vlan_vid = Y
port_id = Y
+set_ipv4_dst = Y
set_ipv4_src = Y
set_mac_dst = Y
set_mac_src = Y
diff --git a/drivers/net/nfp/nfp_flow.c b/drivers/net/nfp/nfp_flow.c
index c0df617..19fc8ca 100644
--- a/drivers/net/nfp/nfp_flow.c
+++ b/drivers/net/nfp/nfp_flow.c
@@ -641,6 +641,14 @@ struct nfp_mask_id_entry {
ip_set_flag = true;
}
break;
+ case RTE_FLOW_ACTION_TYPE_SET_IPV4_DST:
+ PMD_DRV_LOG(DEBUG, "RTE_FLOW_ACTION_TYPE_SET_IPV4_DST detected");
+ if (!ip_set_flag) {
+ key_ls->act_size +=
+ sizeof(struct nfp_fl_act_set_ip4_addrs);
+ ip_set_flag = true;
+ }
+ break;
default:
PMD_DRV_LOG(ERR, "Action type %d not supported.", action->type);
return -ENOTSUP;
@@ -1458,6 +1466,14 @@ struct nfp_mask_id_entry {
ip_set_flag = true;
}
break;
+ case RTE_FLOW_ACTION_TYPE_SET_IPV4_DST:
+ PMD_DRV_LOG(DEBUG, "Process RTE_FLOW_ACTION_TYPE_SET_IPV4_DST");
+ nfp_flow_action_set_ip(position, action, false, ip_set_flag);
+ if (!ip_set_flag) {
+ position += sizeof(struct nfp_fl_act_set_ip4_addrs);
+ ip_set_flag = true;
+ }
+ break;
default:
PMD_DRV_LOG(ERR, "Unsupported action type: %d", action->type);
return -ENOTSUP;
--
1.8.3.1
More information about the dev
mailing list