update rfc2544/throughput json and display. Signed-off-by: yufengmx <yufengx.mo@intel.com> --- tests/l3fwd_base.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/tests/l3fwd_base.py b/tests/l3fwd_base.py index a6e26b0..c2b77db 100644 --- a/tests/l3fwd_base.py +++ b/tests/l3fwd_base.py @@ -827,11 +827,12 @@ class L3fwdBase(object): expected, pps, round(gap, 2)) self.logger.error(msg) else: + expected = pps msg = ('{0} {1} expected throughput value is not set, ' 'ignore check').format(config, frame_size) self.logger.warning(msg) status = 'pass' - js_results.append([status, [pps, linerate - pps], percentage, config, frame_size]) + js_results.append([status, [pps, pps - expected], percentage, config, frame_size]) # save data with json format self.__save_throughput_result(self.__cur_case, js_results) # display result table @@ -861,6 +862,7 @@ class L3fwdBase(object): self.__cur_case, {}).get(self.__nic_name, {}).get( config, {}).get(str(frame_size), {}) zero_loss_rate, tx_pkts, rx_pkts, pps = result if result else [None] * 3 + zero_loss_rate = zero_loss_rate or 0 mpps = pps / 1000000.0 # expected line rate _frame_size = self.__get_frame_size(stm_name, frame_size) @@ -880,16 +882,26 @@ class L3fwdBase(object): ]) # check data with expected values expected_rate = float(expected_cfg.get('rate') or 100.0) + gap = 100 * (zero_loss_rate - expected_rate) / expected_rate status = 'pass' \ - if zero_loss_rate and zero_loss_rate > expected_rate \ + if abs(gap) < bias \ else 'failed' js_results.append( [status, - [mpps, linerate - mpps], actual_rate_percent, + [mpps, zero_loss_rate - expected_rate], actual_rate_percent, config, frame_size]) # save data in json file self.__save_rfc2544_result(self.__cur_case, js_results) # display result table + # Total Cores/Threads/Queues per port + # Frame Size + # Mode: LPM/EM + # Expected LineRate % : which config in l3fwd_lpm_ipv4_rfc2544.cfg + # Actual LineRate % : actual run zero loss rate + # Expected Throughput (Mpps) : Max linerate throughput value * 'Expected LineRate %' + # Actual Throughput (Mpps) : actual run throughput value on the zero loss rate + # tx_pkts : send pkts num + # rx_pkts : received pkts num title = [ 'Total Cores/Threads/Queues per port', "Frame Size", -- 2.21.0
update json and display. v3: - change Actual line rate (Mpps) --> Actual Throughput (Mpps). v2: - update rfc2544 json and display. v1: - update throughput delta, Throughput delta = run value - expected value yufengmx (1): l3fwd: update rfc2544/throughput json and display tests/l3fwd_base.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) -- 2.21.0
update rfc2544/throughput json and display. Signed-off-by: yufengmx <yufengx.mo@intel.com> --- tests/l3fwd_base.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/tests/l3fwd_base.py b/tests/l3fwd_base.py index a6e26b0..c2b77db 100644 --- a/tests/l3fwd_base.py +++ b/tests/l3fwd_base.py @@ -827,11 +827,12 @@ class L3fwdBase(object): expected, pps, round(gap, 2)) self.logger.error(msg) else: + expected = pps msg = ('{0} {1} expected throughput value is not set, ' 'ignore check').format(config, frame_size) self.logger.warning(msg) status = 'pass' - js_results.append([status, [pps, linerate - pps], percentage, config, frame_size]) + js_results.append([status, [pps, pps - expected], percentage, config, frame_size]) # save data with json format self.__save_throughput_result(self.__cur_case, js_results) # display result table @@ -861,6 +862,7 @@ class L3fwdBase(object): self.__cur_case, {}).get(self.__nic_name, {}).get( config, {}).get(str(frame_size), {}) zero_loss_rate, tx_pkts, rx_pkts, pps = result if result else [None] * 3 + zero_loss_rate = zero_loss_rate or 0 mpps = pps / 1000000.0 # expected line rate _frame_size = self.__get_frame_size(stm_name, frame_size) @@ -880,16 +882,26 @@ class L3fwdBase(object): ]) # check data with expected values expected_rate = float(expected_cfg.get('rate') or 100.0) + gap = 100 * (zero_loss_rate - expected_rate) / expected_rate status = 'pass' \ - if zero_loss_rate and zero_loss_rate > expected_rate \ + if abs(gap) < bias \ else 'failed' js_results.append( [status, - [mpps, linerate - mpps], actual_rate_percent, + [mpps, zero_loss_rate - expected_rate], actual_rate_percent, config, frame_size]) # save data in json file self.__save_rfc2544_result(self.__cur_case, js_results) # display result table + # Total Cores/Threads/Queues per port + # Frame Size + # Mode: LPM/EM + # Expected LineRate % : which config in l3fwd_lpm_ipv4_rfc2544.cfg + # Actual LineRate % : actual run zero loss rate + # Expected Throughput (Mpps) : Max linerate throughput value * 'Expected LineRate %' + # Actual Throughput (Mpps) : actual run throughput value on the zero loss rate + # tx_pkts : send pkts num + # rx_pkts : received pkts num title = [ 'Total Cores/Threads/Queues per port', "Frame Size", -- 2.21.0
update rfc2544/throughput json and display. Signed-off-by: yufengmx <yufengx.mo@intel.com> --- tests/l3fwd_base.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/tests/l3fwd_base.py b/tests/l3fwd_base.py index a6e26b0..6eddde0 100644 --- a/tests/l3fwd_base.py +++ b/tests/l3fwd_base.py @@ -827,11 +827,12 @@ class L3fwdBase(object): expected, pps, round(gap, 2)) self.logger.error(msg) else: + expected = pps msg = ('{0} {1} expected throughput value is not set, ' 'ignore check').format(config, frame_size) self.logger.warning(msg) status = 'pass' - js_results.append([status, [pps, linerate - pps], percentage, config, frame_size]) + js_results.append([status, [pps, pps - expected], percentage, config, frame_size]) # save data with json format self.__save_throughput_result(self.__cur_case, js_results) # display result table @@ -861,6 +862,7 @@ class L3fwdBase(object): self.__cur_case, {}).get(self.__nic_name, {}).get( config, {}).get(str(frame_size), {}) zero_loss_rate, tx_pkts, rx_pkts, pps = result if result else [None] * 3 + zero_loss_rate = zero_loss_rate or 0 mpps = pps / 1000000.0 # expected line rate _frame_size = self.__get_frame_size(stm_name, frame_size) @@ -880,22 +882,32 @@ class L3fwdBase(object): ]) # check data with expected values expected_rate = float(expected_cfg.get('rate') or 100.0) + gap = 100 * (zero_loss_rate - expected_rate) / expected_rate status = 'pass' \ - if zero_loss_rate and zero_loss_rate > expected_rate \ + if abs(gap) < bias \ else 'failed' js_results.append( [status, - [mpps, linerate - mpps], actual_rate_percent, + [mpps, zero_loss_rate - expected_rate], actual_rate_percent, config, frame_size]) # save data in json file self.__save_rfc2544_result(self.__cur_case, js_results) # display result table + # Total Cores/Threads/Queues per port + # Frame Size + # Mode: LPM/EM + # Expected LineRate % : which config in l3fwd_lpm_ipv4_rfc2544.cfg + # Actual LineRate % : actual run zero loss rate + # Expected Throughput (Mpps) : Max linerate throughput value * 'Expected LineRate %' + # Actual Throughput (Mpps) : actual run throughput value on the zero loss rate + # tx_pkts : send pkts num + # rx_pkts : received pkts num title = [ 'Total Cores/Threads/Queues per port', "Frame Size", "Mode", 'Expected Throughput (Mpps)', - 'Actual line rate (Mpps) ', + 'Actual Throughput (Mpps) ', '{} Mode config line rate % '.format(mode.upper()), '{} Mode actual line rate % '.format(mode.upper()), 'tx_pkts', -- 2.21.0
Ignore this version 3 patch.
> -----Original Message-----
> From: Mo, YufengX
> Sent: Friday, July 31, 2020 3:58 PM
> To: dts@dpdk.org
> Cc: Mo, YufengX <yufengx.mo@intel.com>
> Subject: [dts][PATCH V2 0/1] l3fwd: update json and display
>
> update json and display.
>
>
> v3:
> - change Actual line rate (Mpps) --> Actual Throughput (Mpps).
>
> v2:
> - update rfc2544 json and display.
>
> v1:
> - update throughput delta, Throughput delta = run value - expected value
>
> yufengmx (1):
> l3fwd: update rfc2544/throughput json and display
>
> tests/l3fwd_base.py | 18 +++++++++++++++---
> 1 file changed, 15 insertions(+), 3 deletions(-)
>
> --
> 2.21.0