Hi All,
I see that GENEVE tunnel type is currently not supported in i40e_dev_udp_tunnel_port_add(). Is there any reason for this or a roadmap for when this is planned to be done? I looked into the latest DPDK (24.03) and it is still not available there.
I'm using XXV710 with an i40e driver and want to associate UDP port 6081 as a GENEVE tunnel on all ports so that RSS works correctly and distributes traffic based on inner packets. I checked the XXV710 datasheet and found that the following patch works for me, but I would like someone else familiar with this to take a look at it.
--- a/drivers/net/i40e/base/i40e_adminq_cmd.h
+++ b/drivers/net/i40e/base/i40e_adminq_cmd.h
@@ -2800,7 +2800,7 @@ struct i40e_aqc_add_udp_tunnel {
u8 reserved0[3];
u8 protocol_type;
#define I40E_AQC_TUNNEL_TYPE_VXLAN 0x00
-#define I40E_AQC_TUNNEL_TYPE_NGE 0x01
+#define I40E_AQC_TUNNEL_TYPE_GENEVE 0x01
#define I40E_AQC_TUNNEL_TYPE_TEREDO 0x10
#define I40E_AQC_TUNNEL_TYPE_VXLAN_GPE 0x11
u8 reserved1[10];
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index cb0070f..464e0be 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -8753,6 +8753,9 @@ i40e_dev_udp_tunnel_port_add(struct rte_eth_dev *dev,
I40E_AQC_TUNNEL_TYPE_VXLAN_GPE);
break;
case RTE_ETH_TUNNEL_TYPE_GENEVE:
+ ret = i40e_add_vxlan_port(pf, udp_tunnel->udp_port,
+ I40E_AQC_TUNNEL_TYPE_GENEVE);
+ break;
case RTE_ETH_TUNNEL_TYPE_TEREDO:
Best regards,
Taras