net/mlx5_core: Make ipv4/ipv6 location more clear
[cascardo/linux.git] / include / linux / mlx5 / mlx5_ifc.h
index 7f16695..68d73f8 100644 (file)
@@ -298,6 +298,22 @@ struct mlx5_ifc_odp_per_transport_service_cap_bits {
        u8         reserved_1[0x1a];
 };
 
+struct mlx5_ifc_ipv4_layout_bits {
+       u8         reserved_0[0x60];
+
+       u8         ipv4[0x20];
+};
+
+struct mlx5_ifc_ipv6_layout_bits {
+       u8         ipv6[16][0x8];
+};
+
+union mlx5_ifc_ipv6_layout_ipv4_layout_auto_bits {
+       struct mlx5_ifc_ipv6_layout_bits ipv6_layout;
+       struct mlx5_ifc_ipv4_layout_bits ipv4_layout;
+       u8         reserved_0[0x80];
+};
+
 struct mlx5_ifc_fte_match_set_lyr_2_4_bits {
        u8         smac_47_16[0x20];
 
@@ -328,9 +344,9 @@ struct mlx5_ifc_fte_match_set_lyr_2_4_bits {
        u8         udp_sport[0x10];
        u8         udp_dport[0x10];
 
-       u8         src_ip[4][0x20];
+       union mlx5_ifc_ipv6_layout_ipv4_layout_auto_bits src_ipv4_src_ipv6;
 
-       u8         dst_ip[4][0x20];
+       union mlx5_ifc_ipv6_layout_ipv4_layout_auto_bits dst_ipv4_dst_ipv6;
 };
 
 struct mlx5_ifc_fte_match_set_misc_bits {