lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180302140224.GH23979@splinter>
Date:   Fri, 2 Mar 2018 16:02:24 +0200
From:   Ido Schimmel <idosch@...sch.org>
To:     David Ahern <dsahern@...il.com>
Cc:     netdev@...r.kernel.org, davem@...emloft.net,
        roopa@...ulusnetworks.com, nikolay@...ulusnetworks.com,
        tom@...bertland.com
Subject: Re: [PATCH v2 net-next 08/10] mlxsw: spectrum_router: Add support
 for ipv6 hash policy update

On Thu, Mar 01, 2018 at 07:29:48PM -0800, David Ahern wrote:
> Similar to 28678f07f127d ("mlxsw: spectrum_router: Update multipath hash
> parameters upon netevents") for IPv4, make sure the kernel and asic are
> using the same hash algorithm for path selection.
> 
> Signed-off-by: David Ahern <dsahern@...il.com>

Reviewed-by: Ido Schimmel <idosch@...lanox.com>
Tested-by: Ido Schimmel <idosch@...lanox.com>

I know the patch is valid at this point because the driver depends on
IPv6 since the mirror to GRE tap code went it. We're going to remove the
dependency and will take care of the reference to
'init_net.ipv6.sysctl.multipath_hash_policy'.

> ---
>  drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
> index 93d48c1b2bf8..6f0457b6e408 100644
> --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
> +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
> @@ -2431,6 +2431,7 @@ static int mlxsw_sp_router_netevent_event(struct notifier_block *nb,
>  		mlxsw_sp_port_dev_put(mlxsw_sp_port);
>  		break;
>  	case NETEVENT_IPV4_MPATH_HASH_UPDATE:
> +	case NETEVENT_IPV6_MPATH_HASH_UPDATE:
>  		net = ptr;
>  
>  		if (!net_eq(net, &init_net))
> @@ -7030,13 +7031,21 @@ static void mlxsw_sp_mp4_hash_init(char *recr2_pl)
>  
>  static void mlxsw_sp_mp6_hash_init(char *recr2_pl)
>  {
> +	bool only_l3 = !init_net.ipv6.sysctl.multipath_hash_policy;
> +
>  	mlxsw_sp_mp_hash_header_set(recr2_pl,
>  				    MLXSW_REG_RECR2_IPV6_EN_NOT_TCP_NOT_UDP);
>  	mlxsw_sp_mp_hash_header_set(recr2_pl, MLXSW_REG_RECR2_IPV6_EN_TCP_UDP);
>  	mlxsw_reg_recr2_ipv6_sip_enable(recr2_pl);
>  	mlxsw_reg_recr2_ipv6_dip_enable(recr2_pl);
> -	mlxsw_sp_mp_hash_field_set(recr2_pl, MLXSW_REG_RECR2_IPV6_FLOW_LABEL);
>  	mlxsw_sp_mp_hash_field_set(recr2_pl, MLXSW_REG_RECR2_IPV6_NEXT_HEADER);
> +	if (only_l3) {
> +		mlxsw_sp_mp_hash_field_set(recr2_pl, MLXSW_REG_RECR2_IPV6_FLOW_LABEL);
> +	} else {
> +		mlxsw_sp_mp_hash_header_set(recr2_pl, MLXSW_REG_RECR2_TCP_UDP_EN_IPV6);
> +		mlxsw_sp_mp_hash_field_set(recr2_pl, MLXSW_REG_RECR2_TCP_UDP_SPORT);
> +		mlxsw_sp_mp_hash_field_set(recr2_pl, MLXSW_REG_RECR2_TCP_UDP_DPORT);

If you're going to send another version, please put the second argument
on a new line as it goes beyond 81 characters.

> +	}
>  }
>  
>  static int mlxsw_sp_mp_hash_init(struct mlxsw_sp *mlxsw_sp)
> -- 
> 2.11.0
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ