lkml.org 
[lkml]   [2023]   [Jul]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v3 net-next] net: flow_dissector: Use 64bits for used_keys
On Sat, Jul 29, 2023 at 04:52:15AM +0530, Ratheesh Kannoth wrote:
> As 32bits of dissector->used_keys are exhausted,
> increase the size to 64bits.
>
> This is base change for ESP/AH flow dissector patch.
> Please find patch and discussions at
> https://lore.kernel.org/netdev/ZMDNjD46BvZ5zp5I@corigine.com/T/#t
>
> Signed-off-by: Ratheesh Kannoth <rkannoth@marvell.com>
> Reviewed-by: Petr Machata <petrm@nvidia.com> # for mlxsw
> Tested-by: Petr Machata <petrm@nvidia.com>
> Reviewed-by: Martin Habets <habetsm.xilinx@gmail.com>
> Reviewed-by: Simon Horman <simon.horman@corigine.com>
>
> ---
> ChangeLog
>
> v2 -> v3: commit message subject line fix as per comment of Petr Machata
> v1 -> v2: Commit message typo fix.
> v0 -> v1: Fix errors reported by kernel test robot
> ---

Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>

> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_smfs.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_smfs.c
> index 2b80fe73549d..8c531f4ec912 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_smfs.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/ct_fs_smfs.c
> @@ -221,16 +221,21 @@ mlx5_ct_fs_smfs_destroy(struct mlx5_ct_fs *fs)
> }
>
> static inline bool
> -mlx5_tc_ct_valid_used_dissector_keys(const u32 used_keys)
> +mlx5_tc_ct_valid_used_dissector_keys(const u64 used_keys)
> {
> -#define DISS_BIT(name) BIT(FLOW_DISSECTOR_KEY_ ## name)
> - const u32 basic_keys = DISS_BIT(BASIC) | DISS_BIT(CONTROL) | DISS_BIT(META);
> - const u32 ipv4_tcp = basic_keys | DISS_BIT(IPV4_ADDRS) | DISS_BIT(PORTS) | DISS_BIT(TCP);
> - const u32 ipv6_tcp = basic_keys | DISS_BIT(IPV6_ADDRS) | DISS_BIT(PORTS) | DISS_BIT(TCP);
> - const u32 ipv4_udp = basic_keys | DISS_BIT(IPV4_ADDRS) | DISS_BIT(PORTS);
> - const u32 ipv6_udp = basic_keys | DISS_BIT(IPV6_ADDRS) | DISS_BIT(PORTS);
> - const u32 ipv4_gre = basic_keys | DISS_BIT(IPV4_ADDRS);
> - const u32 ipv6_gre = basic_keys | DISS_BIT(IPV6_ADDRS);
> +#define DISS_BIT(name) BIT_ULL(FLOW_DISSECTOR_KEY_ ## name)
> + const u64 basic_keys = DISS_BIT(BASIC) | DISS_BIT(CONTROL) |
> + DISS_BIT(META);
> + const u64 ipv4_tcp = basic_keys | DISS_BIT(IPV4_ADDRS) |
> + DISS_BIT(PORTS) | DISS_BIT(TCP);
> + const u64 ipv6_tcp = basic_keys | DISS_BIT(IPV6_ADDRS) |
> + DISS_BIT(PORTS) | DISS_BIT(TCP);
> + const u64 ipv4_udp = basic_keys | DISS_BIT(IPV4_ADDRS) |
> + DISS_BIT(PORTS);
> + const u64 ipv6_udp = basic_keys | DISS_BIT(IPV6_ADDRS) |
> + DISS_BIT(PORTS);
> + const u64 ipv4_gre = basic_keys | DISS_BIT(IPV4_ADDRS);
> + const u64 ipv6_gre = basic_keys | DISS_BIT(IPV6_ADDRS);
>
> return (used_keys == ipv4_tcp || used_keys == ipv4_udp || used_keys == ipv6_tcp ||
> used_keys == ipv6_udp || used_keys == ipv4_gre || used_keys == ipv6_gre);

Probably leaving the style alone here, and just changing the types,
would have been a better choice. Anyway...

\
 
 \ /
  Last update: 2023-07-29 02:49    [W:0.057 / U:0.904 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site