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:   Thu, 21 May 2020 09:24:25 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Guillaume Nault <gnault@...hat.com>,
        David Miller <davem@...emloft.net>,
        Jakub Kicinski <kuba@...nel.org>
Cc:     kbuild-all@...ts.01.org, netdev@...r.kernel.org,
        Jamal Hadi Salim <jhs@...atatu.com>,
        Cong Wang <xiyou.wangcong@...il.com>,
        Jiri Pirko <jiri@...lanox.com>,
        Benjamin LaHaise <benjamin.lahaise@...ronome.com>,
        Tom Herbert <tom@...bertland.com>,
        Liel Shoshan <liels@...lanox.com>,
        Rony Efraim <ronye@...lanox.com>
Subject: Re: [PATCH net-next 1/2] flow_dissector: Parse multiple MPLS Label
 Stack Entries

Hi Guillaume,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on net-next/master]
[also build test ERROR on net/master sparc-next/master linus/master v5.7-rc6 next-20200519]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Guillaume-Nault/flow_dissector-cls_flower-Add-support-for-multiple-MPLS-Label-Stack-Entries/20200521-052254
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 4f65e2f483b6f764c15094d14dd53dda048a4048
config: alpha-allyesconfig (attached as .config)
compiler: alpha-linux-gcc (GCC) 9.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=alpha 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@...el.com>

All errors (new ones prefixed by >>, old ones prefixed by <<):

In file included from include/linux/build_bug.h:5,
from include/linux/bitfield.h:10,
from drivers/net/ethernet/netronome/nfp/flower/match.c:4:
drivers/net/ethernet/netronome/nfp/flower/match.c: In function 'nfp_flower_compile_mac':
>> drivers/net/ethernet/netronome/nfp/flower/match.c:100:57: error: 'struct flow_dissector_key_mpls' has no member named 'mpls_label'
100 |   t_mpls = FIELD_PREP(NFP_FLOWER_MASK_MPLS_LB, match.key->mpls_label) |
|                                                         ^~
include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert'
330 |   if (!(condition))              |         ^~~~~~~~~
include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert'
350 |  _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
|  ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
|                                     ^~~~~~~~~~~~~~~~~~
include/linux/bitfield.h:49:3: note: in expansion of macro 'BUILD_BUG_ON_MSG'
49 |   BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ?           |   ^~~~~~~~~~~~~~~~
include/linux/bitfield.h:94:3: note: in expansion of macro '__BF_FIELD_CHECK'
94 |   __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: ");          |   ^~~~~~~~~~~~~~~~
drivers/net/ethernet/netronome/nfp/flower/match.c:100:12: note: in expansion of macro 'FIELD_PREP'
100 |   t_mpls = FIELD_PREP(NFP_FLOWER_MASK_MPLS_LB, match.key->mpls_label) |
|            ^~~~~~~~~~
>> drivers/net/ethernet/netronome/nfp/flower/match.c:100:57: error: 'struct flow_dissector_key_mpls' has no member named 'mpls_label'
100 |   t_mpls = FIELD_PREP(NFP_FLOWER_MASK_MPLS_LB, match.key->mpls_label) |
|                                                         ^~
include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert'
330 |   if (!(condition))              |         ^~~~~~~~~
include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert'
350 |  _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
|  ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
|                                     ^~~~~~~~~~~~~~~~~~
include/linux/bitfield.h:49:3: note: in expansion of macro 'BUILD_BUG_ON_MSG'
49 |   BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ?           |   ^~~~~~~~~~~~~~~~
include/linux/bitfield.h:94:3: note: in expansion of macro '__BF_FIELD_CHECK'
94 |   __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: ");          |   ^~~~~~~~~~~~~~~~
drivers/net/ethernet/netronome/nfp/flower/match.c:100:12: note: in expansion of macro 'FIELD_PREP'
100 |   t_mpls = FIELD_PREP(NFP_FLOWER_MASK_MPLS_LB, match.key->mpls_label) |
|            ^~~~~~~~~~
In file included from drivers/net/ethernet/netronome/nfp/flower/match.c:4:
>> drivers/net/ethernet/netronome/nfp/flower/match.c:100:57: error: 'struct flow_dissector_key_mpls' has no member named 'mpls_label'
100 |   t_mpls = FIELD_PREP(NFP_FLOWER_MASK_MPLS_LB, match.key->mpls_label) |
|                                                         ^~
include/linux/bitfield.h:95:20: note: in definition of macro 'FIELD_PREP'
95 |   ((typeof(_mask))(_val) << __bf_shf(_mask)) & (_mask);          |                    ^~~~
In file included from include/linux/build_bug.h:5,
from include/linux/bitfield.h:10,
from drivers/net/ethernet/netronome/nfp/flower/match.c:4:
>> drivers/net/ethernet/netronome/nfp/flower/match.c:101:50: error: 'struct flow_dissector_key_mpls' has no member named 'mpls_tc'
101 |     FIELD_PREP(NFP_FLOWER_MASK_MPLS_TC, match.key->mpls_tc) |
|                                                  ^~
include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert'
330 |   if (!(condition))              |         ^~~~~~~~~
include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert'
350 |  _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
|  ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
|                                     ^~~~~~~~~~~~~~~~~~
include/linux/bitfield.h:49:3: note: in expansion of macro 'BUILD_BUG_ON_MSG'
49 |   BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ?           |   ^~~~~~~~~~~~~~~~
include/linux/bitfield.h:94:3: note: in expansion of macro '__BF_FIELD_CHECK'
94 |   __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: ");          |   ^~~~~~~~~~~~~~~~
drivers/net/ethernet/netronome/nfp/flower/match.c:101:5: note: in expansion of macro 'FIELD_PREP'
101 |     FIELD_PREP(NFP_FLOWER_MASK_MPLS_TC, match.key->mpls_tc) |
|     ^~~~~~~~~~
>> drivers/net/ethernet/netronome/nfp/flower/match.c:101:50: error: 'struct flow_dissector_key_mpls' has no member named 'mpls_tc'
101 |     FIELD_PREP(NFP_FLOWER_MASK_MPLS_TC, match.key->mpls_tc) |
|                                                  ^~
include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert'
330 |   if (!(condition))              |         ^~~~~~~~~
include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert'
350 |  _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
|  ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
|                                     ^~~~~~~~~~~~~~~~~~
include/linux/bitfield.h:49:3: note: in expansion of macro 'BUILD_BUG_ON_MSG'
49 |   BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ?           |   ^~~~~~~~~~~~~~~~
include/linux/bitfield.h:94:3: note: in expansion of macro '__BF_FIELD_CHECK'
94 |   __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: ");          |   ^~~~~~~~~~~~~~~~
drivers/net/ethernet/netronome/nfp/flower/match.c:101:5: note: in expansion of macro 'FIELD_PREP'
101 |     FIELD_PREP(NFP_FLOWER_MASK_MPLS_TC, match.key->mpls_tc) |
|     ^~~~~~~~~~
In file included from drivers/net/ethernet/netronome/nfp/flower/match.c:4:
>> drivers/net/ethernet/netronome/nfp/flower/match.c:101:50: error: 'struct flow_dissector_key_mpls' has no member named 'mpls_tc'
101 |     FIELD_PREP(NFP_FLOWER_MASK_MPLS_TC, match.key->mpls_tc) |
|                                                  ^~
include/linux/bitfield.h:95:20: note: in definition of macro 'FIELD_PREP'
95 |   ((typeof(_mask))(_val) << __bf_shf(_mask)) & (_mask);          |                    ^~~~
In file included from include/linux/build_bug.h:5,
from include/linux/bitfield.h:10,
from drivers/net/ethernet/netronome/nfp/flower/match.c:4:
>> drivers/net/ethernet/netronome/nfp/flower/match.c:102:51: error: 'struct flow_dissector_key_mpls' has no member named 'mpls_bos'
102 |     FIELD_PREP(NFP_FLOWER_MASK_MPLS_BOS, match.key->mpls_bos) |
|                                                   ^~
include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert'
330 |   if (!(condition))              |         ^~~~~~~~~
include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert'
350 |  _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
|  ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
|                                     ^~~~~~~~~~~~~~~~~~
include/linux/bitfield.h:49:3: note: in expansion of macro 'BUILD_BUG_ON_MSG'
49 |   BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ?           |   ^~~~~~~~~~~~~~~~
include/linux/bitfield.h:94:3: note: in expansion of macro '__BF_FIELD_CHECK'
94 |   __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: ");          |   ^~~~~~~~~~~~~~~~
drivers/net/ethernet/netronome/nfp/flower/match.c:102:5: note: in expansion of macro 'FIELD_PREP'
102 |     FIELD_PREP(NFP_FLOWER_MASK_MPLS_BOS, match.key->mpls_bos) |
|     ^~~~~~~~~~
>> drivers/net/ethernet/netronome/nfp/flower/match.c:102:51: error: 'struct flow_dissector_key_mpls' has no member named 'mpls_bos'
102 |     FIELD_PREP(NFP_FLOWER_MASK_MPLS_BOS, match.key->mpls_bos) |
|                                                   ^~
include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert'
330 |   if (!(condition))              |         ^~~~~~~~~
include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert'
350 |  _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
|  ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
|                                     ^~~~~~~~~~~~~~~~~~
include/linux/bitfield.h:49:3: note: in expansion of macro 'BUILD_BUG_ON_MSG'
49 |   BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ?           |   ^~~~~~~~~~~~~~~~
include/linux/bitfield.h:94:3: note: in expansion of macro '__BF_FIELD_CHECK'
94 |   __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: ");          |   ^~~~~~~~~~~~~~~~
drivers/net/ethernet/netronome/nfp/flower/match.c:102:5: note: in expansion of macro 'FIELD_PREP'
102 |     FIELD_PREP(NFP_FLOWER_MASK_MPLS_BOS, match.key->mpls_bos) |
|     ^~~~~~~~~~
In file included from drivers/net/ethernet/netronome/nfp/flower/match.c:4:
>> drivers/net/ethernet/netronome/nfp/flower/match.c:102:51: error: 'struct flow_dissector_key_mpls' has no member named 'mpls_bos'
102 |     FIELD_PREP(NFP_FLOWER_MASK_MPLS_BOS, match.key->mpls_bos) |
|                                                   ^~
include/linux/bitfield.h:95:20: note: in definition of macro 'FIELD_PREP'
95 |   ((typeof(_mask))(_val) << __bf_shf(_mask)) & (_mask);          |                    ^~~~
In file included from include/linux/build_bug.h:5,
from include/linux/bitfield.h:10,
from drivers/net/ethernet/netronome/nfp/flower/match.c:4:
drivers/net/ethernet/netronome/nfp/flower/match.c:105:58: error: 'struct flow_dissector_key_mpls' has no member named 'mpls_label'
105 |   t_mpls = FIELD_PREP(NFP_FLOWER_MASK_MPLS_LB, match.mask->mpls_label) |
|                                                          ^~
include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert'
330 |   if (!(condition))              |         ^~~~~~~~~
include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert'
350 |  _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
|  ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
|                                     ^~~~~~~~~~~~~~~~~~
include/linux/bitfield.h:49:3: note: in expansion of macro 'BUILD_BUG_ON_MSG'
49 |   BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ?           |   ^~~~~~~~~~~~~~~~
include/linux/bitfield.h:94:3: note: in expansion of macro '__BF_FIELD_CHECK'
94 |   __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: ");          |   ^~~~~~~~~~~~~~~~
drivers/net/ethernet/netronome/nfp/flower/match.c:105:12: note: in expansion of macro 'FIELD_PREP'
105 |   t_mpls = FIELD_PREP(NFP_FLOWER_MASK_MPLS_LB, match.mask->mpls_label) |
|            ^~~~~~~~~~
drivers/net/ethernet/netronome/nfp/flower/match.c:105:58: error: 'struct flow_dissector_key_mpls' has no member named 'mpls_label'
105 |   t_mpls = FIELD_PREP(NFP_FLOWER_MASK_MPLS_LB, match.mask->mpls_label) |
|                                                          ^~
include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert'
330 |   if (!(condition))              |         ^~~~~~~~~
include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert'
350 |  _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
|  ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
|                                     ^~~~~~~~~~~~~~~~~~
include/linux/bitfield.h:49:3: note: in expansion of macro 'BUILD_BUG_ON_MSG'
49 |   BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ?           |   ^~~~~~~~~~~~~~~~
include/linux/bitfield.h:94:3: note: in expansion of macro '__BF_FIELD_CHECK'
94 |   __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: ");          |   ^~~~~~~~~~~~~~~~
drivers/net/ethernet/netronome/nfp/flower/match.c:105:12: note: in expansion of macro 'FIELD_PREP'
105 |   t_mpls = FIELD_PREP(NFP_FLOWER_MASK_MPLS_LB, match.mask->mpls_label) |
|            ^~~~~~~~~~
In file included from drivers/net/ethernet/netronome/nfp/flower/match.c:4:
drivers/net/ethernet/netronome/nfp/flower/match.c:105:58: error: 'struct flow_dissector_key_mpls' has no member named 'mpls_label'
105 |   t_mpls = FIELD_PREP(NFP_FLOWER_MASK_MPLS_LB, match.mask->mpls_label) |
|                                                          ^~
include/linux/bitfield.h:95:20: note: in definition of macro 'FIELD_PREP'
95 |   ((typeof(_mask))(_val) << __bf_shf(_mask)) & (_mask);          |                    ^~~~
In file included from include/linux/build_bug.h:5,
from include/linux/bitfield.h:10,
from drivers/net/ethernet/netronome/nfp/flower/match.c:4:
drivers/net/ethernet/netronome/nfp/flower/match.c:106:51: error: 'struct flow_dissector_key_mpls' has no member named 'mpls_tc'
106 |     FIELD_PREP(NFP_FLOWER_MASK_MPLS_TC, match.mask->mpls_tc) |
|                                                   ^~
include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert'
330 |   if (!(condition))              |         ^~~~~~~~~
include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert'
350 |  _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
|  ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
|                                     ^~~~~~~~~~~~~~~~~~
include/linux/bitfield.h:49:3: note: in expansion of macro 'BUILD_BUG_ON_MSG'
49 |   BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ?           |   ^~~~~~~~~~~~~~~~
include/linux/bitfield.h:94:3: note: in expansion of macro '__BF_FIELD_CHECK'
94 |   __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: ");          |   ^~~~~~~~~~~~~~~~
drivers/net/ethernet/netronome/nfp/flower/match.c:106:5: note: in expansion of macro 'FIELD_PREP'
106 |     FIELD_PREP(NFP_FLOWER_MASK_MPLS_TC, match.mask->mpls_tc) |
|     ^~~~~~~~~~
drivers/net/ethernet/netronome/nfp/flower/match.c:106:51: error: 'struct flow_dissector_key_mpls' has no member named 'mpls_tc'
106 |     FIELD_PREP(NFP_FLOWER_MASK_MPLS_TC, match.mask->mpls_tc) |
|                                                   ^~
include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert'
330 |   if (!(condition))              |         ^~~~~~~~~
include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert'
350 |  _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
|  ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
|                                     ^~~~~~~~~~~~~~~~~~
include/linux/bitfield.h:49:3: note: in expansion of macro 'BUILD_BUG_ON_MSG'
49 |   BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ?           |   ^~~~~~~~~~~~~~~~
include/linux/bitfield.h:94:3: note: in expansion of macro '__BF_FIELD_CHECK'
94 |   __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: ");          |   ^~~~~~~~~~~~~~~~
drivers/net/ethernet/netronome/nfp/flower/match.c:106:5: note: in expansion of macro 'FIELD_PREP'

vim +100 drivers/net/ethernet/netronome/nfp/flower/match.c

5571e8c9f2419c Pieter Jansen van Vuuren 2017-06-29   76  
5571e8c9f2419c Pieter Jansen van Vuuren 2017-06-29   77  static void
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02   78  nfp_flower_compile_mac(struct nfp_flower_mac_mpls *ext,
31c491e56ad1ad John Hurley              2019-12-17   79  		       struct nfp_flower_mac_mpls *msk, struct flow_rule *rule)
5571e8c9f2419c Pieter Jansen van Vuuren 2017-06-29   80  {
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02   81  	memset(ext, 0, sizeof(struct nfp_flower_mac_mpls));
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02   82  	memset(msk, 0, sizeof(struct nfp_flower_mac_mpls));
5571e8c9f2419c Pieter Jansen van Vuuren 2017-06-29   83  
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02   84  	if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_ETH_ADDRS)) {
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02   85  		struct flow_match_eth_addrs match;
5571e8c9f2419c Pieter Jansen van Vuuren 2017-06-29   86  
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02   87  		flow_rule_match_eth_addrs(rule, &match);
5571e8c9f2419c Pieter Jansen van Vuuren 2017-06-29   88  		/* Populate mac frame. */
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02   89  		ether_addr_copy(ext->mac_dst, &match.key->dst[0]);
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02   90  		ether_addr_copy(ext->mac_src, &match.key->src[0]);
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02   91  		ether_addr_copy(msk->mac_dst, &match.mask->dst[0]);
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02   92  		ether_addr_copy(msk->mac_src, &match.mask->src[0]);
a7cd39e0c7805a Pieter Jansen van Vuuren 2017-08-25   93  	}
5571e8c9f2419c Pieter Jansen van Vuuren 2017-06-29   94  
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02   95  	if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_MPLS)) {
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02   96  		struct flow_match_mpls match;
bb055c198d9b2b Pieter Jansen van Vuuren 2017-10-06   97  		u32 t_mpls;
bb055c198d9b2b Pieter Jansen van Vuuren 2017-10-06   98  
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02   99  		flow_rule_match_mpls(rule, &match);
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02 @100  		t_mpls = FIELD_PREP(NFP_FLOWER_MASK_MPLS_LB, match.key->mpls_label) |
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02 @101  			 FIELD_PREP(NFP_FLOWER_MASK_MPLS_TC, match.key->mpls_tc) |
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02 @102  			 FIELD_PREP(NFP_FLOWER_MASK_MPLS_BOS, match.key->mpls_bos) |
bb055c198d9b2b Pieter Jansen van Vuuren 2017-10-06  103  			 NFP_FLOWER_MASK_MPLS_Q;
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02  104  		ext->mpls_lse = cpu_to_be32(t_mpls);
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02  105  		t_mpls = FIELD_PREP(NFP_FLOWER_MASK_MPLS_LB, match.mask->mpls_label) |
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02  106  			 FIELD_PREP(NFP_FLOWER_MASK_MPLS_TC, match.mask->mpls_tc) |
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02  107  			 FIELD_PREP(NFP_FLOWER_MASK_MPLS_BOS, match.mask->mpls_bos) |
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02  108  			 NFP_FLOWER_MASK_MPLS_Q;
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02  109  		msk->mpls_lse = cpu_to_be32(t_mpls);
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02  110  	} else if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_BASIC)) {
a64119415ff248 Pieter Jansen van Vuuren 2018-06-25  111  		/* Check for mpls ether type and set NFP_FLOWER_MASK_MPLS_Q
a64119415ff248 Pieter Jansen van Vuuren 2018-06-25  112  		 * bit, which indicates an mpls ether type but without any
a64119415ff248 Pieter Jansen van Vuuren 2018-06-25  113  		 * mpls fields.
a64119415ff248 Pieter Jansen van Vuuren 2018-06-25  114  		 */
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02  115  		struct flow_match_basic match;
a64119415ff248 Pieter Jansen van Vuuren 2018-06-25  116  
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02  117  		flow_rule_match_basic(rule, &match);
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02  118  		if (match.key->n_proto == cpu_to_be16(ETH_P_MPLS_UC) ||
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02  119  		    match.key->n_proto == cpu_to_be16(ETH_P_MPLS_MC)) {
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02  120  			ext->mpls_lse = cpu_to_be32(NFP_FLOWER_MASK_MPLS_Q);
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02  121  			msk->mpls_lse = cpu_to_be32(NFP_FLOWER_MASK_MPLS_Q);
8f2566225ae2d6 Pablo Neira Ayuso        2019-02-02  122  		}
bb055c198d9b2b Pieter Jansen van Vuuren 2017-10-06  123  	}
5571e8c9f2419c Pieter Jansen van Vuuren 2017-06-29  124  }
5571e8c9f2419c Pieter Jansen van Vuuren 2017-06-29  125  

:::::: The code at line 100 was first introduced by commit
:::::: 8f2566225ae2d62d532bb1810ed74fa4bbc5bbdb flow_offload: add flow_rule and flow_match structures and use them

:::::: TO: Pablo Neira Ayuso <pablo@...filter.org>
:::::: CC: David S. Miller <davem@...emloft.net>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Download attachment ".config.gz" of type "application/gzip" (61383 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ