RE: [PATCH net-next V2 09/12] net/mlx5_core: Make ipv4/ipv6 location more clear
From: David Laight <hidden>
Date: 2016-01-11 12:20:45
From: Or Gerlitz
quoted hunk ↗ jump to hunk
Sent: 10 January 2016 08:40 Change the mlx5 firmware interface header to make it more clear which bytes should be used by IPv4 or IPv6 addresses. Signed-off-by: Maor Gottlieb <redacted> Signed-off-by: Moni Shoua <redacted> Signed-off-by: Matan Barak <redacted> --- include/linux/mlx5/mlx5_ifc.h | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-)diff --git a/include/linux/mlx5/mlx5_ifc.h b/include/linux/mlx5/mlx5_ifc.h index 7f16695..68d73f8 100644 --- a/include/linux/mlx5/mlx5_ifc.h +++ b/include/linux/mlx5/mlx5_ifc.h@@ -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]; +};
I like the way these names just roll off the tongue :-)
quoted hunk ↗ jump to hunk
+ 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; };
Have you considered just how long the line of code to access these
fields will be?
It might be better to do (I think it compiles):
union {
u8 src_ipv6[16][0x8];
struct {
u8 src_ipv4_pad[0x60];
u8 src_ipv4[0x20];
}
};
Repeated for the 'dst' addresses.
Then fixup the definition of src_ipv4[] (and probably src_ipv6[]) to
be much clearer about how the addresses are supplied.
David