Subject: Re: [PATCH net-next v1 1/7] net: flow_offload: provision conntrack info in ct_metadata

From: kernel test robot <[email-masked]>
Date: Wed, 11 Jan 2023 04:27:18 +0800

Hi Vlad,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on net-next/master]

url:    https://github.com/intel-lab-lkp/linux/commits/Vlad-Buslov/net-flow_offload-provision-conntrack-info-in-ct_metadata/20230110-213500
patch link:    https://lore.kernel.org/r/20230110133023.2366381-2-vladbu%40nvidia.com
patch subject: [PATCH net-next v1 1/7] net: flow_offload: provision conntrack info in ct_metadata
config: x86_64-randconfig-a003
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
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/intel-lab-lkp/linux/commit/99f16b3535be4a9588707780f082146c647c5b5f
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Vlad-Buslov/net-flow_offload-provision-conntrack-info-in-ct_metadata/20230110-213500
        git checkout 99f16b3535be4a9588707780f082146c647c5b5f
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash net/sched/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <[email-masked]>

All errors (new ones prefixed by >>):

   In file included from net/sched/act_skbedit.c:14:
   In file included from include/net/pkt_sched.h:9:
   In file included from include/net/sch_generic.h:21:
   include/net/flow_offload.h:291:27: error: field has incomplete type 'enum ip_conntrack_info'
                           enum ip_conntrack_info ctinfo;
                                                  ^
   include/net/flow_offload.h:291:9: note: forward declaration of 'enum ip_conntrack_info'
                           enum ip_conntrack_info ctinfo;
                                ^
>> net/sched/act_skbedit.c:377:11: error: no member named 'mark' in 'struct flow_action_entry'
                           entry->mark = tcf_skbedit_mark(act);
                           ~~~~~  ^
>> net/sched/act_skbedit.c:380:11: error: no member named 'ptype' in 'struct flow_action_entry'
                           entry->ptype = tcf_skbedit_ptype(act);
                           ~~~~~  ^
>> net/sched/act_skbedit.c:383:11: error: no member named 'priority' in 'struct flow_action_entry'
                           entry->priority = tcf_skbedit_priority(act);
                           ~~~~~  ^
>> net/sched/act_skbedit.c:389:11: error: no member named 'rx_queue' in 'struct flow_action_entry'
                           entry->rx_queue = tcf_skbedit_rx_queue_mapping(act);
                           ~~~~~  ^
   5 errors generated.
--
   In file included from net/sched/act_gact.c:17:
   In file included from include/net/pkt_sched.h:9:
   In file included from include/net/sch_generic.h:21:
   include/net/flow_offload.h:291:27: error: field has incomplete type 'enum ip_conntrack_info'
                           enum ip_conntrack_info ctinfo;
                                                  ^
   include/net/flow_offload.h:291:9: note: forward declaration of 'enum ip_conntrack_info'
                           enum ip_conntrack_info ctinfo;
                                ^
>> net/sched/act_gact.c:254:11: error: no member named 'chain_index' in 'struct flow_action_entry'
                           entry->chain_index = tcf_gact_goto_chain_index(act);
                           ~~~~~  ^
   2 errors generated.
--
   In file included from net/sched/act_mirred.c:23:
   In file included from include/net/pkt_sched.h:9:
   In file included from include/net/sch_generic.h:21:
   include/net/flow_offload.h:291:27: error: field has incomplete type 'enum ip_conntrack_info'
                           enum ip_conntrack_info ctinfo;
                                                  ^
   include/net/flow_offload.h:291:9: note: forward declaration of 'enum ip_conntrack_info'
                           enum ip_conntrack_info ctinfo;
                                ^
>> net/sched/act_mirred.c:439:9: error: no member named 'dev' in 'struct flow_action_entry'
           entry->dev = act->ops->get_dev(act, &entry->destructor);
           ~~~~~  ^
   net/sched/act_mirred.c:440:14: error: no member named 'dev' in 'struct flow_action_entry'
           if (!entry->dev)
                ~~~~~  ^
   net/sched/act_mirred.c:442:34: error: no member named 'dev' in 'struct flow_action_entry'
           entry->destructor_priv = entry->dev;
                                    ~~~~~  ^
   4 errors generated.
--
   In file included from net/sched/act_pedit.c:18:
   In file included from include/net/pkt_sched.h:9:
   In file included from include/net/sch_generic.h:21:
   include/net/flow_offload.h:291:27: error: field has incomplete type 'enum ip_conntrack_info'
                           enum ip_conntrack_info ctinfo;
                                                  ^
   include/net/flow_offload.h:291:9: note: forward declaration of 'enum ip_conntrack_info'
                           enum ip_conntrack_info ctinfo;
                                ^
>> net/sched/act_pedit.c:516:11: error: no member named 'mangle' in 'struct flow_action_entry'
                           entry->mangle.htype = tcf_pedit_htype(act, k);
                           ~~~~~  ^
   net/sched/act_pedit.c:517:11: error: no member named 'mangle' in 'struct flow_action_entry'
                           entry->mangle.mask = tcf_pedit_mask(act, k);
                           ~~~~~  ^
   net/sched/act_pedit.c:518:11: error: no member named 'mangle' in 'struct flow_action_entry'
                           entry->mangle.val = tcf_pedit_val(act, k);
                           ~~~~~  ^
   net/sched/act_pedit.c:519:11: error: no member named 'mangle' in 'struct flow_action_entry'
                           entry->mangle.offset = tcf_pedit_offset(act, k);
                           ~~~~~  ^
   5 errors generated.
--
   In file included from net/sched/act_tunnel_key.c:16:
   In file included from include/net/pkt_sched.h:9:
   In file included from include/net/sch_generic.h:21:
   include/net/flow_offload.h:291:27: error: field has incomplete type 'enum ip_conntrack_info'
                           enum ip_conntrack_info ctinfo;
                                                  ^
   include/net/flow_offload.h:291:9: note: forward declaration of 'enum ip_conntrack_info'
                           enum ip_conntrack_info ctinfo;
                                ^
>> net/sched/act_tunnel_key.c:784:9: error: no member named 'tunnel' in 'struct flow_action_entry'
           entry->tunnel = tcf_tunnel_info_copy(act);
           ~~~~~  ^
   net/sched/act_tunnel_key.c:785:14: error: no member named 'tunnel' in 'struct flow_action_entry'
           if (!entry->tunnel)
                ~~~~~  ^
   net/sched/act_tunnel_key.c:788:34: error: no member named 'tunnel' in 'struct flow_action_entry'
           entry->destructor_priv = entry->tunnel;
                                    ~~~~~  ^
   4 errors generated.
--
   In file included from net/sched/act_gate.c:13:
   In file included from include/net/act_api.h:10:
   include/net/flow_offload.h:291:27: error: field has incomplete type 'enum ip_conntrack_info'
                           enum ip_conntrack_info ctinfo;
                                                  ^
   include/net/flow_offload.h:291:9: note: forward declaration of 'enum ip_conntrack_info'
                           enum ip_conntrack_info ctinfo;
                                ^
>> net/sched/act_gate.c:594:9: error: no member named 'gate' in 'struct flow_action_entry'
           entry->gate.entries = tcf_gate_get_list(act);
           ~~~~~  ^
   net/sched/act_gate.c:596:14: error: no member named 'gate' in 'struct flow_action_entry'
           if (!entry->gate.entries)
                ~~~~~  ^
   net/sched/act_gate.c:600:34: error: no member named 'gate' in 'struct flow_action_entry'
           entry->destructor_priv = entry->gate.entries;
                                    ~~~~~  ^
   net/sched/act_gate.c:615:10: error: no member named 'gate' in 'struct flow_action_entry'
                   entry->gate.prio = tcf_gate_prio(act);
                   ~~~~~  ^
   net/sched/act_gate.c:616:10: error: no member named 'gate' in 'struct flow_action_entry'
                   entry->gate.basetime = tcf_gate_basetime(act);
                   ~~~~~  ^
   net/sched/act_gate.c:617:10: error: no member named 'gate' in 'struct flow_action_entry'
                   entry->gate.cycletime = tcf_gate_cycletime(act);
                   ~~~~~  ^
   net/sched/act_gate.c:618:10: error: no member named 'gate' in 'struct flow_action_entry'
                   entry->gate.cycletimeext = tcf_gate_cycletimeext(act);
                   ~~~~~  ^
   net/sched/act_gate.c:619:10: error: no member named 'gate' in 'struct flow_action_entry'
                   entry->gate.num_entries = tcf_gate_num_entries(act);
                   ~~~~~  ^
   9 errors generated.

vim +377 net/sched/act_skbedit.c

e1fea322fc6d407 Roman Mashak    2019-08-07  367  
c54e1d920f04d52 Baowen Zheng    2021-12-17  368  static int tcf_skbedit_offload_act_setup(struct tc_action *act, void *entry_data,
c2ccf84ecb715bb Ido Schimmel    2022-04-07  369  					 u32 *index_inc, bool bind,
c2ccf84ecb715bb Ido Schimmel    2022-04-07  370  					 struct netlink_ext_ack *extack)
c54e1d920f04d52 Baowen Zheng    2021-12-17  371  {
c54e1d920f04d52 Baowen Zheng    2021-12-17  372  	if (bind) {
c54e1d920f04d52 Baowen Zheng    2021-12-17  373  		struct flow_action_entry *entry = entry_data;
c54e1d920f04d52 Baowen Zheng    2021-12-17  374  
c54e1d920f04d52 Baowen Zheng    2021-12-17  375  		if (is_tcf_skbedit_mark(act)) {
c54e1d920f04d52 Baowen Zheng    2021-12-17  376  			entry->id = FLOW_ACTION_MARK;
c54e1d920f04d52 Baowen Zheng    2021-12-17 @377  			entry->mark = tcf_skbedit_mark(act);
c54e1d920f04d52 Baowen Zheng    2021-12-17  378  		} else if (is_tcf_skbedit_ptype(act)) {
c54e1d920f04d52 Baowen Zheng    2021-12-17  379  			entry->id = FLOW_ACTION_PTYPE;
c54e1d920f04d52 Baowen Zheng    2021-12-17 @380  			entry->ptype = tcf_skbedit_ptype(act);
c54e1d920f04d52 Baowen Zheng    2021-12-17  381  		} else if (is_tcf_skbedit_priority(act)) {
c54e1d920f04d52 Baowen Zheng    2021-12-17  382  			entry->id = FLOW_ACTION_PRIORITY;
c54e1d920f04d52 Baowen Zheng    2021-12-17 @383  			entry->priority = tcf_skbedit_priority(act);
4a6a676f8c16ec1 Amritha Nambiar 2022-10-21  384  		} else if (is_tcf_skbedit_tx_queue_mapping(act)) {
4a6a676f8c16ec1 Amritha Nambiar 2022-10-21  385  			NL_SET_ERR_MSG_MOD(extack, "Offload not supported when \"queue_mapping\" option is used on transmit side");
a9c64939b669b3c Ido Schimmel    2022-04-07  386  			return -EOPNOTSUPP;
4a6a676f8c16ec1 Amritha Nambiar 2022-10-21  387  		} else if (is_tcf_skbedit_rx_queue_mapping(act)) {
4a6a676f8c16ec1 Amritha Nambiar 2022-10-21  388  			entry->id = FLOW_ACTION_RX_QUEUE_MAPPING;
4a6a676f8c16ec1 Amritha Nambiar 2022-10-21 @389  			entry->rx_queue = tcf_skbedit_rx_queue_mapping(act);
a9c64939b669b3c Ido Schimmel    2022-04-07  390  		} else if (is_tcf_skbedit_inheritdsfield(act)) {
a9c64939b669b3c Ido Schimmel    2022-04-07  391  			NL_SET_ERR_MSG_MOD(extack, "Offload not supported when \"inheritdsfield\" option is used");
a9c64939b669b3c Ido Schimmel    2022-04-07  392  			return -EOPNOTSUPP;
c54e1d920f04d52 Baowen Zheng    2021-12-17  393  		} else {
a9c64939b669b3c Ido Schimmel    2022-04-07  394  			NL_SET_ERR_MSG_MOD(extack, "Unsupported skbedit option offload");
c54e1d920f04d52 Baowen Zheng    2021-12-17  395  			return -EOPNOTSUPP;
c54e1d920f04d52 Baowen Zheng    2021-12-17  396  		}
c54e1d920f04d52 Baowen Zheng    2021-12-17  397  		*index_inc = 1;
c54e1d920f04d52 Baowen Zheng    2021-12-17  398  	} else {
8cbfe939abe9052 Baowen Zheng    2021-12-17  399  		struct flow_offload_action *fl_action = entry_data;
8cbfe939abe9052 Baowen Zheng    2021-12-17  400  
8cbfe939abe9052 Baowen Zheng    2021-12-17  401  		if (is_tcf_skbedit_mark(act))
8cbfe939abe9052 Baowen Zheng    2021-12-17  402  			fl_action->id = FLOW_ACTION_MARK;
8cbfe939abe9052 Baowen Zheng    2021-12-17  403  		else if (is_tcf_skbedit_ptype(act))
8cbfe939abe9052 Baowen Zheng    2021-12-17  404  			fl_action->id = FLOW_ACTION_PTYPE;
8cbfe939abe9052 Baowen Zheng    2021-12-17  405  		else if (is_tcf_skbedit_priority(act))
8cbfe939abe9052 Baowen Zheng    2021-12-17  406  			fl_action->id = FLOW_ACTION_PRIORITY;
4a6a676f8c16ec1 Amritha Nambiar 2022-10-21  407  		else if (is_tcf_skbedit_rx_queue_mapping(act))
4a6a676f8c16ec1 Amritha Nambiar 2022-10-21  408  			fl_action->id = FLOW_ACTION_RX_QUEUE_MAPPING;
8cbfe939abe9052 Baowen Zheng    2021-12-17  409  		else
c54e1d920f04d52 Baowen Zheng    2021-12-17  410  			return -EOPNOTSUPP;
c54e1d920f04d52 Baowen Zheng    2021-12-17  411  	}
c54e1d920f04d52 Baowen Zheng    2021-12-17  412  
c54e1d920f04d52 Baowen Zheng    2021-12-17  413  	return 0;
c54e1d920f04d52 Baowen Zheng    2021-12-17  414  }
c54e1d920f04d52 Baowen Zheng    2021-12-17  415  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests