Hi, I have had same issue with Nvidia, even in SW mode it is limited to 127.
Now checking, I think maybe limit is set in trex_driver files. There is some comment there about reasoning for setting to 127
/scratch/trex-core-3.05/src/drivers]# grep num_counters *
trex_driver_base.h: virtual void get_rx_stat_capabilities(uint16_t &flags, uint16_t &num_counters, uint16_t &base_ip_id) = 0;
trex_driver_base.h: void get_rx_stat_capabilities(uint16_t &flags, uint16_t &num_counters, uint16_t &base_ip_id) {
trex_driver_base.h: m_real_drv->get_rx_stat_capabilities(flags, num_counters, base_ip_id);
trex_driver_bnxt.h: virtual void get_rx_stat_capabilities(uint16_t &flags, uint16_t &num_counters, uint16_t &base_ip_id) { }
trex_driver_i40e.cpp:void CTRexExtendedDriverBase40G::get_rx_stat_capabilities(uint16_t &flags, uint16_t &num_counters, uint16_t &base_ip_id) {
trex_driver_i40e.cpp: num_counters = MAX_FLOW_STATS;
trex_driver_i40e.cpp: num_counters = MAX_FLOW_STATS_X710;
trex_driver_i40e.cpp: m_max_flow_stats = num_counters;
trex_driver_i40e.h: virtual void get_rx_stat_capabilities(uint16_t &flags, uint16_t &num_counters, uint16_t &base_ip_id);
trex_driver_ice.cpp:void CTRexExtendedDriverIce::get_rx_stat_capabilities(uint16_t &flags, uint16_t &num_counters, uint16_t &base_ip_id) {
trex_driver_ice.cpp: num_counters = 127; //With MAX_FLOW_STATS we saw packet failures in rx_test. Need to check.
trex_driver_ice.h: virtual void get_rx_stat_capabilities(uint16_t &flags, uint16_t &num_counters, uint16_t &base_ip_id);
trex_driver_igb.cpp:void CTRexExtendedDriverBase1G::get_rx_stat_capabilities(uint16_t &flags, uint16_t &num_counters, uint16_t &base_ip_id) {
trex_driver_igb.cpp: num_counters = MAX_FLOW_STATS;
trex_driver_igb.cpp: num_counters = UINT8_MAX;
trex_driver_igb.h: virtual void get_rx_stat_capabilities(uint16_t &flags, uint16_t &num_counters, uint16_t &base_ip_id);
trex_driver_igc.h: virtual void get_rx_stat_capabilities(uint16_t &flags, uint16_t &num_counters, uint16_t &base_ip_id) { }
trex_driver_ixgbe.cpp:void CTRexExtendedDriverBase10G::get_rx_stat_capabilities(uint16_t &flags, uint16_t &num_counters, uint16_t &base_ip_id) {
trex_driver_ixgbe.cpp: num_counters = MAX_FLOW_STATS;
trex_driver_ixgbe.cpp: num_counters = 127;
trex_driver_ixgbe.h: virtual void get_rx_stat_capabilities(uint16_t &flags, uint16_t &num_counters, uint16_t &base_ip_id);
trex_driver_mlx5.cpp:void CTRexExtendedDriverBaseMlnx5G::get_rx_stat_capabilities(uint16_t &flags, uint16_t &num_counters, uint16_t &base_ip_id) {
trex_driver_mlx5.cpp: num_counters = 127; //With MAX_FLOW_STATS we saw packet failures in rx_test. Need to check.
trex_driver_mlx5.h: virtual void get_rx_stat_capabilities(uint16_t &flags, uint16_t &num_counters, uint16_t &base_ip_id);
trex_driver_ntacc.h: virtual void get_rx_stat_capabilities(uint16_t &flags, uint16_t &num_counters, uint16_t &base_ip_id) {
trex_driver_ntacc.h: num_counters = MAX_FLOW_STATS;
trex_driver_vic.cpp:void CTRexExtendedDriverBaseVIC::get_rx_stat_capabilities(uint16_t &flags, uint16_t &num_counters, uint16_t &base_ip_id) {
trex_driver_vic.cpp: num_counters = MAX_FLOW_STATS;
trex_driver_vic.h: virtual void get_rx_stat_capabilities(uint16_t &flags, uint16_t &num_counters, uint16_t &base_ip_id);
trex_driver_virtual.cpp:void CTRexExtendedDriverVirtBase::get_rx_stat_capabilities(uint16_t &flags, uint16_t &num_counters, uint16_t &base_ip_id) {
trex_driver_virtual.cpp: num_counters = MAX_FLOW_STATS;
trex_driver_virtual.h: virtual void get_rx_stat_capabilities(uint16_t &flags, uint16_t &num_counters, uint16_t &base_ip_id);