diff --git a/dts/framework/test_suite.py b/dts/framework/test_suite.py
index 3b890c0451..3222f172f3 100644
--- a/dts/framework/test_suite.py
+++ b/dts/framework/test_suite.py
@@ -152,7 +152,11 @@ def _configure_ipv4_forwarding(self, enable: bool) -> None:
         self.sut_node.configure_ipv4_forwarding(enable)
 
     def send_packet_and_capture(
-        self, packet: Packet, duration: float = 1
+        self,
+        packet: Packet,
+        duration: float = 1,
+        no_lldp: bool = True,
+        no_arp: bool = True,
     ) -> list[Packet]:
         """
         Send a packet through the appropriate interface and
@@ -162,7 +166,12 @@ def send_packet_and_capture(
         """
         packet = self._adjust_addresses(packet)
         return self.tg_node.send_packet_and_capture(
-            packet, self._tg_port_egress, self._tg_port_ingress, duration
+            packet,
+            self._tg_port_egress,
+            self._tg_port_ingress,
+            duration,
+            no_lldp,
+            no_arp,
         )
 
     def get_expected_packet(self, packet: Packet) -> Packet:
diff --git a/dts/framework/testbed_model/capturing_traffic_generator.py b/dts/framework/testbed_model/capturing_traffic_generator.py
index ab98987f8e..0a0d0f7d0d 100644
--- a/dts/framework/testbed_model/capturing_traffic_generator.py
+++ b/dts/framework/testbed_model/capturing_traffic_generator.py
@@ -52,6 +52,8 @@ def send_packet_and_capture(
         send_port: Port,
         receive_port: Port,
         duration: float,
+        no_lldp: bool,
+        no_arp: bool,
         capture_name: str = _get_default_capture_name(),
     ) -> list[Packet]:
         """Send a packet, return received traffic.
@@ -71,7 +73,7 @@ def send_packet_and_capture(
              A list of received packets. May be empty if no packets are captured.
         """
         return self.send_packets_and_capture(
-            [packet], send_port, receive_port, duration, capture_name
+            [packet], send_port, receive_port, duration, no_lldp, no_arp, capture_name
         )
 
     def send_packets_and_capture(
@@ -80,6 +82,8 @@ def send_packets_and_capture(
         send_port: Port,
         receive_port: Port,
         duration: float,
+        no_lldp: bool,
+        no_arp: bool,
         capture_name: str = _get_default_capture_name(),
     ) -> list[Packet]:
         """Send packets, return received traffic.
@@ -93,6 +97,8 @@ def send_packets_and_capture(
             send_port: The egress port on the TG node.
             receive_port: The ingress port in the TG node.
             duration: Capture traffic for this amount of time after sending the packets.
+            no_lldp: Option to disable capturing LLDP packets
+            no_arp: Option to disable capturing ARP packets
             capture_name: The name of the .pcap file where to store the capture.
 
         Returns:
@@ -108,6 +114,8 @@ def send_packets_and_capture(
             send_port,
             receive_port,
             duration,
+            no_lldp,
+            no_arp,
         )
 
         self._logger.debug(
@@ -123,6 +131,8 @@ def _send_packets_and_capture(
         send_port: Port,
         receive_port: Port,
         duration: float,
+        no_lldp: bool,
+        no_arp: bool,
     ) -> list[Packet]:
         """
         The extended classes must implement this method which
diff --git a/dts/framework/testbed_model/scapy.py b/dts/framework/testbed_model/scapy.py
index af0d4dbb25..58f01af21a 100644
--- a/dts/framework/testbed_model/scapy.py
+++ b/dts/framework/testbed_model/scapy.py
@@ -69,6 +69,7 @@ def scapy_send_packets_and_capture(
     send_iface: str,
     recv_iface: str,
     duration: float,
+    sniff_filter: str,
 ) -> list[bytes]:
     """RPC function to send and capture packets.
 
@@ -90,6 +91,7 @@ def scapy_send_packets_and_capture(
         iface=recv_iface,
         store=True,
         started_callback=lambda *args: scapy.all.sendp(scapy_packets, iface=send_iface),
+        filter=sniff_filter,
     )
     sniffer.start()
     time.sleep(duration)
@@ -264,10 +266,16 @@ def _send_packets_and_capture(
         send_port: Port,
         receive_port: Port,
         duration: float,
+        no_lldp: bool,
+        no_arp: bool,
         capture_name: str = _get_default_capture_name(),
     ) -> list[Packet]:
         binary_packets = [packet.build() for packet in packets]
-
+        sniff_filter = []
+        if no_lldp:
+            sniff_filter.append("ether[12:2] != 0x88cc")
+        if no_arp:
+            sniff_filter.append("ether[12:2] != 0x0806")
         xmlrpc_packets: list[
             xmlrpc.client.Binary
         ] = self.rpc_server_proxy.scapy_send_packets_and_capture(
@@ -275,6 +283,7 @@ def _send_packets_and_capture(
             send_port.logical_name,
             receive_port.logical_name,
             duration,
+            " && ".join(sniff_filter),
         )  # type: ignore[assignment]
 
         scapy_packets = [Ether(packet.data) for packet in xmlrpc_packets]
diff --git a/dts/framework/testbed_model/tg_node.py b/dts/framework/testbed_model/tg_node.py
index 27025cfa31..98e55b7831 100644
--- a/dts/framework/testbed_model/tg_node.py
+++ b/dts/framework/testbed_model/tg_node.py
@@ -56,6 +56,8 @@ def send_packet_and_capture(
         send_port: Port,
         receive_port: Port,
         duration: float = 1,
+        no_lldp: bool = True,
+        no_arp: bool = True,
     ) -> list[Packet]:
         """Send a packet, return received traffic.
 
@@ -73,7 +75,7 @@ def send_packet_and_capture(
              A list of received packets. May be empty if no packets are captured.
         """
         return self.traffic_generator.send_packet_and_capture(
-            packet, send_port, receive_port, duration
+            packet, send_port, receive_port, duration, no_lldp, no_arp
         )
 
     def close(self) -> None:
