def test_perf_checksum_throughtput(self):
        """
        Test checksum offload performance.
        """
        self.dut_ports = self.dut.get_ports_performance()
        # Verify that enough ports are available
        self.verify(len(self.dut_ports) >= 2, "Insufficient ports for testing")

        # sizes = [64, 128, 256, 512, 1024]
        sizes = [64, 128]
        pkts = {
            'IP/UDP':
            'Ether(dst="%s", src="52:00:00:00:00:00")/IP()/UDP()/("X"*(%d-46))',
            'IP/TCP':
            'Ether(dst="%s", src="52:00:00:00:00:00")/IP()/TCP()/("X"*(%d-58))',
            'IP/SCTP':
            'Ether(dst="%s", src="52:00:00:00:00:00")/IP()/SCTP()/("X"*(%d-50+2))',
            'IPv6/UDP':
            'Ether(dst="%s", src="52:00:00:00:00:00")/IPv6()/UDP()/("X"* (lambda x: x - 66 if x > 66 else 0)(%d))',
            'IPv6/TCP':
            'Ether(dst="%s", src="52:00:00:00:00:00")/IPv6()/TCP()/("X"* (lambda x: x - 78 if x > 78 else 0)(%d))'
        }

        lcore = "1S/2C/1T"
        portMask = dts.create_mask([self.dut_ports[0], self.dut_ports[1]])

        for mode in ["sw", "hw"]:
            self.logger.info("%s performance" % mode)
            rst.write_text(mode + " Performance" + '\r\n')
            tblheader = ["Ports", "S/C/T", "Packet Type", "Mode"]
            for size in sizes:
                tblheader.append("%sB mpps" % str(size))
                tblheader.append("%sB %%   " % str(size))

            dts.results_table_add_header(tblheader)

            self.pmdout.start_testpmd(lcore,
                                      "--portmask=%s" % self.portMask,
                                      socket=self.ports_socket)

            self.dut.send_expect("set verbose 1", "testpmd> ")
            self.dut.send_expect("set fwd csum", "testpmd> ")

            if mode == "hw":
                self.checksum_enablehw(self.dut_ports[0])
                self.checksum_enablehw(self.dut_ports[1])
            else:
                self.checksum_enablesw(self.dut_ports[0])
                self.checksum_enablesw(self.dut_ports[1])

            self.dut.send_expect("start", "testpmd> ", 3)

            for ptype in pkts.keys():
                self.benchmark(lcore, ptype, mode, pkts[ptype], sizes,
                               self.nic)

            self.dut.send_expect("stop", "testpmd> ")
            self.dut.send_expect("quit", "#", 10)
            dts.results_table_print()
Example #2
0
def report(text, frame=False, annex=False):
    """
    Save report text into rst file.
    """
    if frame:
        rst.write_frame(text, annex)
    else:
        rst.write_text(text, annex)
Example #3
0
def report(text, frame=False, annex=False):
    """
    Save report text into rst file.
    """
    if frame:
        rst.write_frame(text, annex)
    else:
        rst.write_text(text, annex)
Example #4
0
def results_table_print():
    """
    Show off result table.
    """
    table.add_rows(results_table_rows)
    table.header(results_table_header)

    alignments = []
    # all header align to left
    for _ in results_table_header:
        alignments.append("l")
    table.set_cols_align(alignments)

    out = table.draw()
    rst.write_text('\n' + out + '\n\n')
    log_handler.info('\n' + out)
Example #5
0
def results_table_print():
    """
    Show off result table.
    """
    table.add_rows(results_table_rows)
    table.header(results_table_header)

    alignments = []
    # all header align to left
    for _ in results_table_header:
        alignments.append("l")
    table.set_cols_align(alignments)

    out = table.draw()
    rst.write_text('\n' + out + '\n\n')
    log_handler.info('\n' + out)