From: kernel test robot <lkp@intel.com>
To: Balaev Pavel <balaevpa@infotecs.ru>, netdev@vger.kernel.org
Cc: kbuild-all@lists.01.org, Jakub Kicinski <kuba@kernel.org>,
Jonathan Corbet <corbet@lwn.net>,
Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>,
David Ahern <dsahern@kernel.org>,
Shuah Khan <skhan@linuxfoundation.org>,
Christophe JAILLET <christophe.jaillet@wanadoo.fr>,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 net-next] net: multipath routing: configurable seed
Date: Fri, 30 Apr 2021 02:52:11 +0800 [thread overview]
Message-ID: <202104300220.lIl8YMQh-lkp@intel.com> (raw)
In-Reply-To: <YILPPCyMjlnhPmEN@rnd>
[-- Attachment #1: Type: text/plain, Size: 5941 bytes --]
Hi Balaev,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on net-next/master]
url: https://github.com/0day-ci/linux/commits/Balaev-Pavel/net-multipath-routing-configurable-seed/20210423-214755
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git cad4162a90aeff737a16c0286987f51e927f003a
config: riscv-rv32_defconfig (attached as .config)
compiler: riscv32-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/d2127c4161e4482ac75072cfdbb27781d2a9be30
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Balaev-Pavel/net-multipath-routing-configurable-seed/20210423-214755
git checkout d2127c4161e4482ac75072cfdbb27781d2a9be30
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
net/ipv6/route.c: In function 'rt6_multipath_hash':
>> net/ipv6/route.c:2422:11: error: implicit declaration of function 'flow_multipath_hash_from_keys'; did you mean 'flow_hash_from_keys'? [-Werror=implicit-function-declaration]
2422 | mhash = flow_multipath_hash_from_keys(&hash_keys, seed_ctx);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| flow_hash_from_keys
cc1: some warnings being treated as errors
vim +2422 net/ipv6/route.c
2328
2329 /* if skb is set it will be used and fl6 can be NULL */
2330 u32 rt6_multipath_hash(const struct net *net, const struct flowi6 *fl6,
2331 const struct sk_buff *skb, struct flow_keys *flkeys)
2332 {
2333 struct flow_keys hash_keys;
2334 siphash_key_t *seed_ctx;
2335 u32 mhash;
2336
2337 switch (ip6_multipath_hash_policy(net)) {
2338 case 0:
2339 memset(&hash_keys, 0, sizeof(hash_keys));
2340 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS;
2341 if (skb) {
2342 ip6_multipath_l3_keys(skb, &hash_keys, flkeys);
2343 } else {
2344 hash_keys.addrs.v6addrs.src = fl6->saddr;
2345 hash_keys.addrs.v6addrs.dst = fl6->daddr;
2346 hash_keys.tags.flow_label = (__force u32)flowi6_get_flowlabel(fl6);
2347 hash_keys.basic.ip_proto = fl6->flowi6_proto;
2348 }
2349 break;
2350 case 1:
2351 if (skb) {
2352 unsigned int flag = FLOW_DISSECTOR_F_STOP_AT_ENCAP;
2353 struct flow_keys keys;
2354
2355 /* short-circuit if we already have L4 hash present */
2356 if (skb->l4_hash)
2357 return skb_get_hash_raw(skb) >> 1;
2358
2359 memset(&hash_keys, 0, sizeof(hash_keys));
2360
2361 if (!flkeys) {
2362 skb_flow_dissect_flow_keys(skb, &keys, flag);
2363 flkeys = &keys;
2364 }
2365 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS;
2366 hash_keys.addrs.v6addrs.src = flkeys->addrs.v6addrs.src;
2367 hash_keys.addrs.v6addrs.dst = flkeys->addrs.v6addrs.dst;
2368 hash_keys.ports.src = flkeys->ports.src;
2369 hash_keys.ports.dst = flkeys->ports.dst;
2370 hash_keys.basic.ip_proto = flkeys->basic.ip_proto;
2371 } else {
2372 memset(&hash_keys, 0, sizeof(hash_keys));
2373 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS;
2374 hash_keys.addrs.v6addrs.src = fl6->saddr;
2375 hash_keys.addrs.v6addrs.dst = fl6->daddr;
2376 hash_keys.ports.src = fl6->fl6_sport;
2377 hash_keys.ports.dst = fl6->fl6_dport;
2378 hash_keys.basic.ip_proto = fl6->flowi6_proto;
2379 }
2380 break;
2381 case 2:
2382 memset(&hash_keys, 0, sizeof(hash_keys));
2383 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS;
2384 if (skb) {
2385 struct flow_keys keys;
2386
2387 if (!flkeys) {
2388 skb_flow_dissect_flow_keys(skb, &keys, 0);
2389 flkeys = &keys;
2390 }
2391
2392 /* Inner can be v4 or v6 */
2393 if (flkeys->control.addr_type == FLOW_DISSECTOR_KEY_IPV4_ADDRS) {
2394 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV4_ADDRS;
2395 hash_keys.addrs.v4addrs.src = flkeys->addrs.v4addrs.src;
2396 hash_keys.addrs.v4addrs.dst = flkeys->addrs.v4addrs.dst;
2397 } else if (flkeys->control.addr_type == FLOW_DISSECTOR_KEY_IPV6_ADDRS) {
2398 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS;
2399 hash_keys.addrs.v6addrs.src = flkeys->addrs.v6addrs.src;
2400 hash_keys.addrs.v6addrs.dst = flkeys->addrs.v6addrs.dst;
2401 hash_keys.tags.flow_label = flkeys->tags.flow_label;
2402 hash_keys.basic.ip_proto = flkeys->basic.ip_proto;
2403 } else {
2404 /* Same as case 0 */
2405 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS;
2406 ip6_multipath_l3_keys(skb, &hash_keys, flkeys);
2407 }
2408 } else {
2409 /* Same as case 0 */
2410 hash_keys.control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS;
2411 hash_keys.addrs.v6addrs.src = fl6->saddr;
2412 hash_keys.addrs.v6addrs.dst = fl6->daddr;
2413 hash_keys.tags.flow_label = (__force u32)flowi6_get_flowlabel(fl6);
2414 hash_keys.basic.ip_proto = fl6->flowi6_proto;
2415 }
2416 break;
2417 }
2418
2419 rcu_read_lock();
2420 seed_ctx = rcu_dereference(net->ipv6.multipath_hash_seed_ctx);
2421 if (seed_ctx)
> 2422 mhash = flow_multipath_hash_from_keys(&hash_keys, seed_ctx);
2423 else
2424 mhash = flow_hash_from_keys(&hash_keys);
2425 rcu_read_unlock();
2426
2427 return mhash >> 1;
2428 }
2429
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 20551 bytes --]
prev parent reply other threads:[~2021-04-29 18:52 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-23 13:44 [PATCH v4 net-next] net: multipath routing: configurable seed Balaev Pavel
2021-04-27 3:21 ` David Ahern
2021-04-27 9:42 ` Pavel Balaev
2021-04-27 14:27 ` David Ahern
2021-04-27 14:58 ` Void
2021-04-29 18:52 ` kernel test robot [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202104300220.lIl8YMQh-lkp@intel.com \
--to=lkp@intel.com \
--cc=balaevpa@infotecs.ru \
--cc=christophe.jaillet@wanadoo.fr \
--cc=corbet@lwn.net \
--cc=dsahern@kernel.org \
--cc=kbuild-all@lists.01.org \
--cc=kuba@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=skhan@linuxfoundation.org \
--cc=yoshfuji@linux-ipv6.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox