One more issue (that is probably not sniffer related) is that when
changing to 1 link, vlan_header_insertion testcase has an ERROR result
with: "Testpmd failed to set vlan insertion tag 51 on port 1." This
makes sense because usage of port 1 is hardcoded into the testcast -
we need to decorate this wil requires 2 links.

    @func_test
    def vlan_header_insertion(self) -> None:
        """Ensure that VLAN packet is received with the correct
inserted VLAN tag.

        Steps:
            * Start testpmd.
            * Set forwarding mode to MAC.
            * Disable promiscuous mode.
            * Enable Tx VLAN and set the VLAN tag.
            * Send and capture VLAN packets.

        Verify:
            * VLAN packets are received with the correct inserted VLAN tag.
        """
        with TestPmd() as testpmd:
            testpmd.set_forward_mode(SimpleForwardingModes.mac)
            testpmd.set_promisc(port=0, enable=False)
            testpmd.stop_all_ports()
            testpmd.tx_vlan_set(port=1, enable=True, vlan=51)
            testpmd.start_all_ports()
            testpmd.start()
            self._send_packet_and_verify_insertion(expected_id=51)

On Tue, Mar 10, 2026 at 10:53 AM Patrick Robb <[email protected]> wrote:
>
> The implementation of the patch looks good to me, but I think the
> testsuites being reduced from 2 links to 1 link might be an incorrect
> set.
>
> For instance, I just did a testrun on cx7 comparing for-main to
> for-main + this series.
>
> This series introduces failures for:
> port control: start_ports testcase
> vlan: vlan_no_receipt testcase
> vlan: vlan_receipt_stripping testcase
>
> In terms of why these fails are happening... in principle the
> functions flexed by these testcases should be fine to test with 1
> link. My guess is we are uncovering an issue with the scapy sniffer
> when running a 1 link test. The port_control testcase fails because it
> expects 100 packets and sniffs 200. Perhaps this is because it is
> sniffing both tx and rx packets on the TG port 0. We have code to
> prevent this from the most recent implementation of the sniffer class
> but maybe it has a gap.

Reply via email to