Skip to content

Commit 10e1d19

Browse files
committed
WIP
Signed-off-by: Hanoch Haim <[email protected]>
2 parents d7c4e40 + d243241 commit 10e1d19

File tree

7 files changed

+80
-27
lines changed

7 files changed

+80
-27
lines changed

doc/release_notes.asciidoc

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ ifdef::backend-docbook[]
2626

2727
endif::backend-docbook[]
2828

29-
30-
3129
== Release 3.06 ==
3230

3331
* Fixed net_bonding breakage caused by the upgrade to DPDK 24.03.
@@ -40,7 +38,6 @@ endif::backend-docbook[]
4038
* Upgrade to DPDK 24.03 for new Cloud drivers
4139
** add mana driver
4240

43-
4441
== Release 3.04 ==
4542

4643
* Upgrade to DPDK 23.03 for new Cloud drivers

linux_dpdk/ws_main.py

Lines changed: 41 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -598,28 +598,6 @@ def configure_mlx5 (ctx):
598598
'enum','MLX5_OPCODE_ACCESS_ASO' ],
599599

600600

601-
[ 'HAVE_SUPPORTED_40000baseKR4_Full', 'linux/ethtool.h',
602-
'define', 'SUPPORTED_40000baseKR4_Full' ],
603-
[ 'HAVE_SUPPORTED_40000baseCR4_Full', 'linux/ethtool.h',
604-
'define', 'SUPPORTED_40000baseCR4_Full' ],
605-
[ 'HAVE_SUPPORTED_40000baseSR4_Full', 'linux/ethtool.h',
606-
'define', 'SUPPORTED_40000baseSR4_Full' ],
607-
[ 'HAVE_SUPPORTED_40000baseLR4_Full', 'linux/ethtool.h',
608-
'define', 'SUPPORTED_40000baseLR4_Full' ],
609-
[ 'HAVE_SUPPORTED_56000baseKR4_Full', 'linux/ethtool.h',
610-
'define', 'SUPPORTED_56000baseKR4_Full' ],
611-
[ 'HAVE_SUPPORTED_56000baseCR4_Full', 'linux/ethtool.h',
612-
'define', 'SUPPORTED_56000baseCR4_Full' ],
613-
[ 'HAVE_SUPPORTED_56000baseSR4_Full', 'linux/ethtool.h',
614-
'define', 'SUPPORTED_56000baseSR4_Full' ],
615-
[ 'HAVE_SUPPORTED_56000baseLR4_Full', 'linux/ethtool.h',
616-
'define', 'SUPPORTED_56000baseLR4_Full' ],
617-
[ 'HAVE_ETHTOOL_LINK_MODE_25G', 'linux/ethtool.h',
618-
'enum', 'ETHTOOL_LINK_MODE_25000baseCR_Full_BIT' ],
619-
[ 'HAVE_ETHTOOL_LINK_MODE_50G', 'linux/ethtool.h',
620-
'enum', 'ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT' ],
621-
[ 'HAVE_ETHTOOL_LINK_MODE_100G', 'linux/ethtool.h',
622-
'enum', 'ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT' ],
623601
[ 'HAVE_IFLA_NUM_VF', 'linux/if_link.h',
624602
'enum', 'IFLA_NUM_VF' ],
625603
[ 'HAVE_IFLA_EXT_MASK', 'linux/if_link.h',
@@ -656,6 +634,36 @@ def configure_mlx5 (ctx):
656634
'func','mlx5dv_dr_domain_set_reclaim_device_memory'],
657635
[ 'HAVE_MLX5_DR_CREATE_ACTION_FLOW_SAMPLE', 'infiniband/mlx5dv.h',
658636
'func','mlx5dv_dr_action_create_flow_sampler'],
637+
[ 'HAVE_MLX5DV_FLOW_MATCHER_FT_TYPE', 'infiniband/mlx5dv.h',
638+
'field', 'struct mlx5dv_flow_matcher_attr.ft_type' ],
639+
[ 'HAVE_IBV_FLOW_SPEC_ESP', 'infiniband/verbs.h',
640+
'enum', 'IBV_FLOW_SPEC_ESP' ],
641+
[ 'HAVE_IBV_RX_HASH_IPSEC_SPI', 'infiniband/verbs.h',
642+
'enum', 'IBV_RX_HASH_IPSEC_SPI' ],
643+
[ 'HAVE_MLX5DV_DR_DEVX_PORT_V35', 'infiniband/mlx5dv.h',
644+
'func', 'mlx5dv_query_port' ],
645+
[ 'HAVE_MLX5DV_DR_CREATE_DEST_IB_PORT', 'infiniband/mlx5dv.h',
646+
'func', 'mlx5dv_dr_action_create_dest_ib_port' ],
647+
[ 'HAVE_RDMA_NLDEV_ATTR_PORT_STATE', 'rdma/rdma_netlink.h',
648+
'enum', 'RDMA_NLDEV_ATTR_PORT_STATE' ],
649+
[ 'HAVE_MLX5_UMR_IMKEY', 'infiniband/mlx5dv.h',
650+
'enum', 'MLX5_WQE_UMR_CTRL_FLAG_INLINE' ],
651+
[ 'HAVE_MLX5_DR_FLOW_DUMP_RULE', 'infiniband/mlx5dv.h',
652+
'func', 'mlx5dv_dump_dr_rule' ],
653+
[ 'HAVE_MLX5_DR_ACTION_ASO_CT', 'infiniband/mlx5dv.h',
654+
'enum', 'MLX5DV_DR_ACTION_FLAGS_ASO_CT_DIRECTION_INITIATOR' ],
655+
[ 'HAVE_MLX5_DR_ALLOW_DUPLICATE', 'infiniband/mlx5dv.h',
656+
'func', 'mlx5dv_dr_domain_allow_duplicate_rules' ],
657+
[ 'HAVE_MLX5_IBV_REG_MR_IOVA', 'infiniband/verbs.h',
658+
'func', 'ibv_reg_mr_iova' ],
659+
[ 'HAVE_MLX5_IBV_IMPORT_CTX_PD_AND_MR', 'infiniband/verbs.h',
660+
'type', 'ibv_import_device' ],
661+
[ 'HAVE_MLX5DV_DR_ACTION_CREATE_DEST_ROOT_TABLE', 'infiniband/mlx5dv.h',
662+
'func', 'mlx5dv_dr_action_create_dest_root_table' ],
663+
[ 'HAVE_MLX5DV_CREATE_STEERING_ANCHOR', 'infiniband/mlx5dv.h',
664+
'func', 'mlx5dv_create_steering_anchor'],
665+
[ 'HAVE_IBV_FORK_UNNEEDED', 'infiniband/verbs.h',
666+
'func', 'ibv_is_fork_initialized'],
659667

660668
]
661669
autoconf_script = 'src/dpdk/auto-config-h.sh'
@@ -1397,6 +1405,15 @@ def getstatusoutput(cmd):
13971405
'drivers/net/failsafe/failsafe_flow.c',
13981406
'drivers/net/failsafe/failsafe_intr.c',
13991407

1408+
#gve
1409+
'drivers/net/gve/base/gve_adminq.c',
1410+
'drivers/net/gve/gve_rx.c',
1411+
'drivers/net/gve/gve_tx.c',
1412+
'drivers/net/gve/gve_rx_dqo.c',
1413+
'drivers/net/gve/gve_tx_dqo.c',
1414+
'drivers/net/gve/gve_ethdev.c',
1415+
'drivers/net/gve/gve_version.c',
1416+
'drivers/net/gve/gve_rss.c',
14001417

14011418
#vdev_netvsc
14021419
'drivers/net/vdev_netvsc/vdev_netvsc.c',
@@ -2150,6 +2167,8 @@ def getstatusoutput(cmd):
21502167
../src/dpdk/drivers/net/enic/base/
21512168
../src/dpdk/drivers/net/i40e/
21522169
../src/dpdk/drivers/net/i40e/base/
2170+
../src/dpdk/drivers/net/gve/
2171+
../src/dpdk/drivers/net/gve/base/
21532172
../src/dpdk/drivers/net/ixgbe/
21542173
../src/dpdk/drivers/net/ixgbe/base/
21552174
../src/dpdk/drivers/net/igc/

scripts/dpdk_setup_ports.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1150,6 +1150,7 @@ def do_return_to_linux(self):
11501150
'net_virtio': 'virtio-pci',
11511151
'net_enic': 'enic',
11521152
'net_bnxt': 'bnxt_en',
1153+
'net_gve': 'gve',
11531154
}
11541155
nics_info = dpdk_nic_bind.get_info_from_trex(dpdk_interfaces)
11551156
if not nics_info:

src/dpdk/auto-config-h.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ then
9999
else
100100
rm -f "${temp}" "${temp}.o"
101101
printf "\
102-
/* %s is not defined. */
102+
#undef %s
103103
104104
" "${macro}" >> "${file}" &&
105105
printf 'Not defining %s.\n' "${macro}"

src/drivers/trex_driver_base.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ CTRexExtendedDriverDb::CTRexExtendedDriverDb() {
151151
register_driver(std::string("net_vmxnet3"), CTRexExtendedDriverVmxnet3::create);
152152
register_driver(std::string("net_virtio"), CTRexExtendedDriverVirtio::create);
153153
register_driver(std::string("net_ena"),CTRexExtendedDriverVirtio::create);
154-
register_driver(std::string("net_mana"),CTRexExtendedDriverVirtio::create);
154+
register_driver(std::string("net_gve"), CTRexExtendedDriverGve::create);
155155
register_driver(std::string("net_iavf"), CTRexExtendedDriverIavf::create);
156156
register_driver(std::string("net_i40e_vf"), CTRexExtendedDriverIavf::create);
157157
register_driver(std::string("net_ixgbe_vf"), CTRexExtendedDriverIxgbevf::create);

src/drivers/trex_driver_virtual.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,27 @@ CTRexExtendedDriverNetvsc::CTRexExtendedDriverNetvsc(){
227227
m_cap = tdCAP_ONE_QUE | tdCAP_MULTI_QUE;
228228
}
229229

230+
CTRexExtendedDriverGve::CTRexExtendedDriverGve(){
231+
m_cap = tdCAP_ONE_QUE | tdCAP_MULTI_QUE;
232+
}
233+
234+
TRexPortAttr* CTRexExtendedDriverGve::create_port_attr(tvpid_t tvpid,repid_t repid){
235+
return new DpdkTRexPortAttr(tvpid, repid, true, false, true, false, false);
236+
}
237+
238+
bool CTRexExtendedDriverGve::get_extended_stats(CPhyEthIF * _if,CPhyEthIFStats *stats){
239+
return get_extended_stats_fixed(_if, stats, 4, 4);
240+
}
241+
242+
void CTRexExtendedDriverGve::update_configuration(port_cfg_t * cfg){
243+
CTRexExtendedDriverVirtBase::update_configuration(cfg);
244+
cfg->m_port_conf.rxmode.offloads = 0;
245+
//cfg->tx_offloads.common_required |= RTE_ETH_TX_OFFLOAD_MULTI_SEGS;
246+
//cfg->tx_offloads.common_required |= RTE_ETH_TX_OFFLOAD_IPV4_CKSUM;
247+
cfg->tx_offloads.common_best_effort = 0;
248+
}
249+
250+
230251
TRexPortAttr* CTRexExtendedDriverNetvsc::create_port_attr(tvpid_t tvpid,repid_t repid){
231252
return new DpdkTRexPortAttr(tvpid, repid, true, false, true, false, false);
232253
}

src/drivers/trex_driver_virtual.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,21 @@ class CTRexExtendedDriverMemif : public CTRexExtendedDriverVirtBase {
140140
virtual void update_configuration(port_cfg_t * cfg);
141141
};
142142

143+
class CTRexExtendedDriverGve : public CTRexExtendedDriverVirtBase {
144+
public:
145+
CTRexExtendedDriverGve();
146+
static CTRexExtendedDriverBase * create(){
147+
return ( new CTRexExtendedDriverGve() );
148+
}
149+
virtual bool is_support_for_rx_scatter_gather(){
150+
return (true);
151+
}
152+
153+
virtual TRexPortAttr* create_port_attr(tvpid_t tvpid,repid_t repid);
154+
virtual bool get_extended_stats(CPhyEthIF * _if,CPhyEthIFStats *stats);
155+
virtual void update_configuration(port_cfg_t * cfg);
156+
};
157+
143158
class CTRexExtendedDriverNetvsc : public CTRexExtendedDriverVirtBase {
144159
public:
145160
CTRexExtendedDriverNetvsc();

0 commit comments

Comments
 (0)