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 796DC424C3; Mon, 10 Jun 2024 22:08:54 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 66C61402CA; Mon, 10 Jun 2024 22:08:54 +0200 (CEST) Received: from mail-pj1-f53.google.com (mail-pj1-f53.google.com [209.85.216.53]) by mails.dpdk.org (Postfix) with ESMTP id 83C03402A9 for ; Mon, 10 Jun 2024 22:08:53 +0200 (CEST) Received: by mail-pj1-f53.google.com with SMTP id 98e67ed59e1d1-2c3051aee3fso1251228a91.3 for ; Mon, 10 Jun 2024 13:08:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; t=1718050132; x=1718654932; darn=dpdk.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=uiyk8Ic+UuJLWnNvbuVoHtXtAsDIZpxdp61J8v7lxwU=; b=UzbA2C4LpYLqPZA2Vi1kQzdQz2bQTxeWBhkpejeEs7hZogNCUuvm790RJQzX/1l+xE cKFWYOnxfJj0KcQ9HF2mvggaIUNzt1XqpbeK4EZ6yYgwuqJLwiDgLZFQlWHAZhzmu3D/ wRwXYeE4au+bUv5noH2xwOXHgMjxRHLr+EtF4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718050133; x=1718654933; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uiyk8Ic+UuJLWnNvbuVoHtXtAsDIZpxdp61J8v7lxwU=; b=ZiOBHHvDhCX+Jvci6Tp5EIPZ7UXbR7cQPMiD0Ha1989EN3S0TifakBqFhbFztOgGEk OMiXGDPDbj7VoxAG6ntwAO96wJriWme6nHmUDrHOMFVgESBvdBia+z0w4chsSlpYGra6 BcjHy0TsukXPQhjK7uLHIcWaRNJHI+wnh1tdPVC/fr1+AUSq95wdTHBRpW9L9wMN4+cY bC2u6rokA3NMYpCe4OmSxAEDE7ksmzdXMDSY4IL/1lWwBz1XqLYB50EKWGDC0FubF5ZB 8mbkVKZmgM6xjxH6UI4zuKvavi/KfONffAHO8TEzsWNEC3qEEujasDkD98ZC7dzDr02F ME0g== X-Forwarded-Encrypted: i=1; AJvYcCVwx6dwAkFwQTe+GPLQm5SkVVfsBnv6smRHH25PdkYmEJ8gf+udo1Qdma+2wz8BPQJOQirozVeWJakcyAQ= X-Gm-Message-State: AOJu0YzcjBgtoaNX1wmu6fGO5SslRgNamKdBepM7feFzG8pShwJHRVSZ dmaYva5LWayXmhcNp69zsDLPwL5UftqUO4S5VMJd5BVb4zGOiSQgEgt60vr6n8BxtCBbFQ2oS1f PxSL0CPeyYUAoLAJyTSUWumTaxB7aV3t27B3JEg== X-Google-Smtp-Source: AGHT+IExqmcSADY6rcRreuqgM0UTLK2UhCGx5x2b+NLH3VX0XOR+8LzhQmhw2gpSx+LpGxh5iKhPBxroDlnzWhm2KwQ= X-Received: by 2002:a17:90b:14d:b0:2c2:feca:7bbd with SMTP id 98e67ed59e1d1-2c2feca7c51mr4199161a91.39.1718050132672; Mon, 10 Jun 2024 13:08:52 -0700 (PDT) MIME-Version: 1.0 References: <20240514201436.2496-1-jspewock@iol.unh.edu> <20240605213148.21371-1-jspewock@iol.unh.edu> <20240605213148.21371-5-jspewock@iol.unh.edu> In-Reply-To: From: Jeremy Spewock Date: Mon, 10 Jun 2024 16:08:41 -0400 Message-ID: Subject: Re: [PATCH v3 4/4] dts: add test case that utilizes offload to pmd_buffer_scatter To: =?UTF-8?Q?Juraj_Linke=C5=A1?= Cc: 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, dev@dpdk.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 On Mon, Jun 10, 2024 at 11:22=E2=80=AFAM Juraj Linke=C5=A1 wrote: > > > diff --git a/dts/tests/TestSuite_pmd_buffer_scatter.py b/dts/tests/Test= Suite_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 +=3D struct.pack("=3DB", int("%s%s" % (X_in_h= ex[0], X_in_hex[1]), 16)) > > received_packets =3D self.send_packet_and_capture(packet) > > + # filter down the list to packets that have the appropriate st= ructure > > + received_packets =3D list( > > + filter(lambda p: Ether in p and IP in p and Raw in p, rece= ived_packets) > > + ) > > self.verify(len(received_packets) > 0, "Did not receive any p= ackets.") > > - load =3D hexstr(received_packets[0].getlayer(2), onlyhex=3D1) > > > > - return load > > + return received_packets > > > > - def pmd_scatter(self, mbsize: int) -> None: > > + def pmd_scatter(self, mbsize: int, testpmd_params: list[str]) -> N= one: > > 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. Ack. > > > """Testpmd support of receiving and sending scattered multi-s= egment packets. > > > > Support for scattered packets is shown by sending 5 packets o= f differing length > > @@ -103,34 +119,53 @@ def pmd_scatter(self, mbsize: int) -> None: > > """ > > testpmd_shell =3D self.sut_node.create_interactive_shell( > > TestPmdShell, > > - app_parameters=3D( > > - "--mbcache=3D200 " > > - f"--mbuf-size=3D{mbsize} " > > - "--max-pkt-len=3D9000 " > > - "--port-topology=3Dpaired " > > - "--tx-offloads=3D0x00008000" > > - ), > > + app_parameters=3D" ".join(testpmd_params), > > privileged=3DTrue, > > ) > > 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 =3D self.scatter_pktgen_send_packet(mbsiz= e + 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? There technically could be in very strange cases, but this change also adds a filter to `scatter_pktgen_send_packet()` that filters the list before it is returned here. I imagine there wouldn't be (and in my testing there aren't) any other packets that have the structure Ether() / IP() / Raw() getting sent by anything on the wire, so I just noted it to make it more clear that the call to `any()` probably isn't going to have to consume much. I did the filtering in the other method because I wanted to be able to distinguish between getting nothing, and getting something that has the right structure but not the right payload (as, presumably, if this test were to fail it would be shown in the payload). > > > + @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=3D2048) > > + self.pmd_scatter( > > + mbsize=3D2048, testpmd_params=3D[*(self.base_testpmd_param= eters), "--mbuf-size=3D2048"] > > + ) > > + > > 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. Honestly, when it's phrased like that, I have no good reason at all, haha. I just put it there because I got stuck in some mentality of "testpmd parameters go in this list, so it has to go here", but it did feel weird to hardcode the same value twice like that. I'll adjust this. > > > + 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=3D2048, > > + testpmd_params=3D[ > > + *(self.base_testpmd_parameters), > > + "--mbuf-size=3D2048", > > + "--enable-scatter", > > + ], > > + ) > > > > def tear_down_suite(self) -> None: > > """Tear down the test suite.