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]
Date: Mon, 20 Nov 2023 10:18:13 +0000
From: Yinjun Zhang <yinjun.zhang@...igine.com>
To: Simon Horman <horms@...nel.org>, Louis Peens <louis.peens@...igine.com>
CC: David Miller <davem@...emloft.net>, Jakub Kicinski <kuba@...nel.org>,
	Paolo Abeni <pabeni@...hat.com>, "netdev@...r.kernel.org"
	<netdev@...r.kernel.org>, oss-drivers <oss-drivers@...igine.com>
Subject: RE: [PATCH net-next 1/2] nfp: add ethtool flow steering callbacks

On Monday, November 20, 2023 5:43 PM, Simon Horman wrote:
<...>
> > +     case TCP_V6_FLOW:
> > +     case UDP_V6_FLOW:
> > +     case SCTP_V6_FLOW:
> > +             for (i = 0; i < 4; i++) {
> > +                     fs->h_u.tcp_ip6_spec.ip6src[i] = entry->key.sip6[i];
> > +                     fs->h_u.tcp_ip6_spec.ip6dst[i] = entry->key.dip6[i];
> > +                     fs->m_u.tcp_ip6_spec.ip6src[i] = entry->msk.sip6[i];
> > +                     fs->m_u.tcp_ip6_spec.ip6dst[i] = entry->msk.dip6[i];
> > +             }
> 
> I think the above loop can be more succinctly be expressed using a single
> memcpy(). For which I do see precedence in Intel drivers. Likewise
> elsewhere in this patch-set.
> 
> I don't feel strongly about this, so feel free to take this suggestion,
> defer it to later, or dismiss it entirely.

Thanks Simon. Louis did have same suggestion about this part. But
since we have similar code below:
```
for (i = 0; i < 4; i++) {
	entry->msk.sip6[i] = fs->m_u.tcp_ip6_spec.ip6src[i];
	entry->msk.dip6[i] = fs->m_u.tcp_ip6_spec.ip6dst[i];
	entry->key.sip6[i] = fs->h_u.tcp_ip6_spec.ip6src[i] & entry->msk.sip6[i];
	entry->key.dip6[i] = fs->h_u.tcp_ip6_spec.ip6dst[i] & entry->msk.dip6[i];
}
```
which can not be replaced by `memcpy`, so I decided to leave them as
they are to keep consistency.
So if you don't feel strongly and nobody else objects it, I'll leave it.

> 
> > +             fs->h_u.tcp_ip6_spec.psrc = entry->key.sport;
> > +             fs->h_u.tcp_ip6_spec.pdst = entry->key.dport;
> > +             fs->m_u.tcp_ip6_spec.psrc = entry->msk.sport;
> > +             fs->m_u.tcp_ip6_spec.pdst = entry->msk.dport;
> > +             break;
> 
> ...

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ