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