From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id DBC3F424C1; Mon, 10 Jun 2024 17:22:29 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CB1AC402A9; Mon, 10 Jun 2024 17:22:29 +0200 (CEST) Received: from mail-lf1-f50.google.com (mail-lf1-f50.google.com [209.85.167.50]) by mails.dpdk.org (Postfix) with ESMTP id C36F5402A9 for ; Mon, 10 Jun 2024 17:22:28 +0200 (CEST) Received: by mail-lf1-f50.google.com with SMTP id 2adb3069b0e04-52bbdb15dd5so49761e87.3 for ; Mon, 10 Jun 2024 08:22:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pantheon.tech; s=google; t=1718032948; x=1718637748; darn=dpdk.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=7KoMkEFUz4rVXGwVC/t1N67WRNP9iiZKewB/zSTgyio=; b=m2n6Ncy43JByED6m52GmtdomjdFD0QfPx5bfDDEB9pnCJze7LhZ+daIY57R6oF6qvW TwFhwKC7OEdmmdE2SlwMBi+z0ozopfTXnEGimwVaOVkZWtasQz+7WsKATw/GHAHxX0mt ILMXLwhLz8eNYTBwzsYlEN1jtLQwcSdckmXLyQ1sOeklOYemTk4FFhUEWzMQ0m8TQW3j 4V0mIKkxPOZ4HilswVKRS5yJzu31fbYg/gkSTJtMPwMMGRPZFmoIsGRNOfoi6u+Df0+e XY2FxX42yHS20yZxZKLqEONzaqMR1v5HA99lF71DTMMCEdPrPftIdH2CtWAZoqB5S+CB nKvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718032948; x=1718637748; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=7KoMkEFUz4rVXGwVC/t1N67WRNP9iiZKewB/zSTgyio=; b=TC1/TP+XPhMYrbVJFN3LrkpyDLqrxLBaaXYxeanw1X8O9MHLiFONgLjJEauaboFTnz 9yWu095VAwizPePw/a5z5A8p2DCwoUzbsEGTYgeuG0Lfv6X9HRPSZ4HebUQMVP3wL7zl CJs7MNVCIHLfwqSRpUCiv8F3294AE9tacs2gXLSKrPjzMnqKTCPlW1nhU5oPHYpk74Es Q4q3LURv7txsHqcqBPWEjjp8CfPCddcj1gz4LoEDQX2lDvIxDFVNs6dnFhGXQRJ/9l7K h5nBifv12MTnJosebpsPSACBOYUDKkV4QTROH2uWci22mAcgpye+y0Kdb/VoQmi+SXo9 yVPQ== X-Gm-Message-State: AOJu0YwTsbQ2mPfif3E3VwmTK5briPyDNfnB9xtxpYRo/LNbR/NvnWUE i+w3v9s+7tgcGvEcKUawkusGUVkecAY45oAIPhzvsf4yrKYHQiQI+mYnJDIIL9Y= X-Google-Smtp-Source: AGHT+IGWWz8IWcdX8OdS+s7z2uFDcdNkjPstv0xrz63kYLhrTRi5QdAwQhxjarElwh17V2Su7KmJ8Q== X-Received: by 2002:a05:6512:282:b0:52c:901f:e4 with SMTP id 2adb3069b0e04-52c901f022amr543864e87.0.1718032948149; Mon, 10 Jun 2024 08:22:28 -0700 (PDT) Received: from [192.168.1.113] ([84.245.121.236]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-35f27c8a444sm1622238f8f.53.2024.06.10.08.22.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 10 Jun 2024 08:22:27 -0700 (PDT) Message-ID: Date: Mon, 10 Jun 2024 17:22:26 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 4/4] dts: add test case that utilizes offload to pmd_buffer_scatter To: jspewock@iol.unh.edu, Honnappa.Nagarahalli@arm.com, probb@iol.unh.edu, paul.szczepanek@arm.com, thomas@monjalon.net, wathsala.vithanage@arm.com, npratte@iol.unh.edu, yoan.picchi@foss.arm.com, Luca.Vizzarro@arm.com Cc: dev@dpdk.org References: <20240514201436.2496-1-jspewock@iol.unh.edu> <20240605213148.21371-1-jspewock@iol.unh.edu> <20240605213148.21371-5-jspewock@iol.unh.edu> Content-Language: en-US From: =?UTF-8?Q?Juraj_Linke=C5=A1?= In-Reply-To: <20240605213148.21371-5-jspewock@iol.unh.edu> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org > diff --git a/dts/tests/TestSuite_pmd_buffer_scatter.py b/dts/tests/TestSuite_pmd_buffer_scatter.py > index 41f6090a7e..76eabb51f6 100644 > --- a/dts/tests/TestSuite_pmd_buffer_scatter.py > +++ b/dts/tests/TestSuite_pmd_buffer_scatter.py > @@ -86,12 +99,15 @@ def scatter_pktgen_send_packet(self, pktsize: int) -> str: > for X_in_hex in payload: > packet.load += struct.pack("=B", int("%s%s" % (X_in_hex[0], X_in_hex[1]), 16)) > received_packets = self.send_packet_and_capture(packet) > + # filter down the list to packets that have the appropriate structure > + received_packets = list( > + filter(lambda p: Ether in p and IP in p and Raw in p, received_packets) > + ) > self.verify(len(received_packets) > 0, "Did not receive any packets.") > - load = hexstr(received_packets[0].getlayer(2), onlyhex=1) > > - return load > + return received_packets > > - def pmd_scatter(self, mbsize: int) -> None: > + def pmd_scatter(self, mbsize: int, testpmd_params: list[str]) -> None: Since base_testpmd_parameters is a class var, the method is always going to have access to it and we only need to pass the extra parameters. There's not much of a point in passing what's common to all tests to this method, as it should contain the common parts. > """Testpmd support of receiving and sending scattered multi-segment packets. > > Support for scattered packets is shown by sending 5 packets of differing length > @@ -103,34 +119,53 @@ def pmd_scatter(self, mbsize: int) -> None: > """ > testpmd_shell = self.sut_node.create_interactive_shell( > TestPmdShell, > - app_parameters=( > - "--mbcache=200 " > - f"--mbuf-size={mbsize} " > - "--max-pkt-len=9000 " > - "--port-topology=paired " > - "--tx-offloads=0x00008000" > - ), > + app_parameters=" ".join(testpmd_params), > privileged=True, > ) > with testpmd_shell as testpmd: > testpmd.set_forward_mode(TestPmdForwardingModes.mac) > + # adjust the MTU of the SUT ports > + for port_id in range(testpmd.number_of_ports): > + testpmd.set_port_mtu(port_id, 9000) > testpmd.start() > > for offset in [-1, 0, 1, 4, 5]: > - recv_payload = self.scatter_pktgen_send_packet(mbsize + offset) > + # This list should only ever contain one element Which list is the comment referring to? recv_packets? There could be more than just one packet, right? > + recv_packets = self.scatter_pktgen_send_packet(mbsize + offset) > self._logger.debug( > - f"Payload of scattered packet after forwarding: \n{recv_payload}" > + f"Relevant captured packets: \n{recv_packets}" > ) > + > self.verify( > - ("58 " * 8).strip() in recv_payload, > + any( > + " ".join(["58"]*8) in hexstr(pakt.getlayer(2), onlyhex=1) > + for pakt in recv_packets > + ), > "Payload of scattered packet did not match expected payload with offset " > f"{offset}.", > ) > testpmd.stop() > + # reset the MTU of the SUT ports > + for port_id in range(testpmd.number_of_ports): > + testpmd.set_port_mtu(port_id, 1500) > > + @requires(NicCapability.scattered_rx) > def test_scatter_mbuf_2048(self) -> None: > """Run the :meth:`pmd_scatter` test with `mbsize` set to 2048.""" > - self.pmd_scatter(mbsize=2048) > + self.pmd_scatter( > + mbsize=2048, testpmd_params=[*(self.base_testpmd_parameters), "--mbuf-size=2048"] > + ) > + I'm curious why you moved the --mbuf-size parameter here. It's always going to be (or should be) equal to mbsize, which we already pass (and now we're essentially passing the same thing twice), so I feel this just creates opportunities for mistakes. > + def test_scatter_mbuf_2048_with_offload(self) -> None: > + """Run the :meth:`pmd_scatter` test with `mbsize` set to 2048 and rx_scatter offload.""" > + self.pmd_scatter( > + mbsize=2048, > + testpmd_params=[ > + *(self.base_testpmd_parameters), > + "--mbuf-size=2048", > + "--enable-scatter", > + ], > + ) > > def tear_down_suite(self) -> None: > """Tear down the test suite.