Project

General

Profile

Actions

Bug #6790

closed

dpdk: evaluate the correct handling of DPDK ports on shutdown

Added by Lukas Sismis 9 months ago. Updated 5 months ago.

Status:
Closed
Priority:
Normal
Assignee:
Target version:
Affected Versions:
Effort:
Difficulty:
Label:

Description

Evaluate if HW ports are correctly closed. During a test run with net_null virtual devices Suricata/net_null PMD produces some extra log/traceback.

The config:

dpdk:
  eal-params:
    proc-type: primary
      # no-huge:
    vdev: ["net_null0", "net_null1", "net_null2", "net_null3"]

  # DPDK capture support
  # RX queues (and TX queues in IPS mode) are assigned to cores in 1:1 ratio
  interfaces:
    - interface: net_null1 # 0000:3b:00.0 # PCIe address of the NIC port
      threads: 1
      promisc: true # promiscuous mode - capture all packets
      multicast: true # enables also detection on multicast packets
      checksum-checks: true # if Suricata should validate checksums
      checksum-checks-offload: true # if possible offload checksum validation to the NIC (saves Suricata resources)
      mtu: 1500 # Set MTU of the device in bytes
      mempool-size: 65535 #65535 #8 # The number of elements in the mbuf pool
      mempool-cache-size: 511
      rx-descriptors: 1024
      tx-descriptors: 1024
      copy-mode: ips
      copy-iface: net_null0 # or PCIe address of the second interface   
    - interface: net_null0 # 0000:3b:00.0 # PCIe address of the NIC port
      threads: 1
      promisc: true # promiscuous mode - capture all packets
      multicast: true # enables also detection on multicast packets
      checksum-checks: true # if Suricata should validate checksums
      checksum-checks-offload: true # if possible offload checksum validation to the NIC (saves Suricata resources)
      mtu: 1500 # Set MTU of the device in bytes
      mempool-size: 65535 #65535 #8 # The number of elements in the mbuf pool
      mempool-cache-size: 511
      rx-descriptors: 16384
      tx-descriptors: 16384
      copy-mode: ips
      copy-iface: net_null1 # or PCIe address of the second interface

    - interface: net_null2 # 0000:3b:00.0 # PCIe address of the NIC port
      threads: 2
      promisc: true # promiscuous mode - capture all packets
      multicast: true # enables also detection on multicast packets
      checksum-checks: true # if Suricata should validate checksums
      checksum-checks-offload: true # if possible offload checksum validation to the NIC (saves Suricata resources)
      mtu: 1500 # Set MTU of the device in bytes
      mempool-size: 65535 #65535 #8 # The number of elements in the mbuf pool
      mempool-cache-size: 511
      rx-descriptors: 1024
      tx-descriptors: 1024
      copy-mode: ips
      copy-iface: net_null3 # or PCIe address of the second interface   
    - interface: net_null3 # 0000:3b:00.0 # PCIe address of the NIC port
      threads: 2
      promisc: true # promiscuous mode - capture all packets
      multicast: true # enables also detection on multicast packets
      checksum-checks: true # if Suricata should validate checksums
      checksum-checks-offload: true # if possible offload checksum validation to the NIC (saves Suricata resources)
      mtu: 1500 # Set MTU of the device in bytes
      mempool-size: 65535 #65535 #8 # The number of elements in the mbuf pool
      mempool-cache-size: 511
      rx-descriptors: 16384
      tx-descriptors: 16384
      copy-mode: ips
      copy-iface: net_null2 # or PCIe address of the second interface

    - interface: default
      threads: 3
      promisc: true
      multicast: true
      checksum-checks: true
      checksum-checks-offload: true
      mtu: 1500
      rss-hash-functions: auto
      mempool-size: 65535
      mempool-cache-size: 257
      rx-descriptors: 16384
      tx-descriptors: 16384
      copy-mode: none
      copy-iface: none

Causes:

Notice: threads: Threads created -> W: 6 FM: 1 FR: 1   Engine started. [TmThreadWaitOnThreadRunning:tm-threads.c:1899]
Perf: hugepages: Hugepages on NUMA node 0 can be set to 343 (only using 298/1020 2048kB hugepages) [SystemHugepageEvaluateHugepages:util-hugepages.c:403]
^CNotice: suricata: Signal Received.  Stopping engine. [SuricataMainLoop:suricata.c:2811]
lcore 4294967295 called tx_pkt_burst for not ready port 2
lcore 4294967295 called tx_pkt_burst for not ready port 1
0: /lib/x86_64-linux-gnu/librte_eal.so.24 (rte_dump_stack+0x42) [7f1d21720f52]
1: /lib/x86_64-linux-gnu/librte_ethdev.so.24 (7f1d221df000+0xc0bc) [7f1d221eb0bc]
2: /home/luks/Documents/Skola/DP/suricata/src/.libs/suricata (557b4a0df000+0x2afd57) [557b4a38ed57]
3: /home/luks/Documents/Skola/DP/suricata/src/.libs/suricata (557b4a0df000+0x2af4b2) [557b4a38e4b2]
4: /home/luks/Documents/Skola/DP/suricata/src/.libs/suricata (557b4a0df000+0x1dc579) [557b4a2bb579]
0: /lib/x86_64-linux-gnu/librte_eal.so.24 (rte_dump_stack+0x42) [7f1d21720f52]
5: /lib/x86_64-linux-gnu/libc.so.6 (7f1d21400000+0x94ac3) [7f1d21494ac3]
1: /lib/x86_64-linux-gnu/librte_ethdev.so.24 (7f1d221df000+0xc0bc) [7f1d221eb0bc]
2: /home/luks/Documents/Skola/DP/suricata/src/.libs/suricata (557b4a0df000+0x2afd57) [557b4a38ed57]
3: /home/luks/Documents/Skola/DP/suricata/src/.libs/suricata (557b4a0df000+0x2af4b2) [557b4a38e4b2]
4: /home/luks/Documents/Skola/DP/suricata/src/.libs/suricata (557b4a0df000+0x1dc579) [557b4a2bb579]
5: /lib/x86_64-linux-gnu/libc.so.6 (7f1d21400000+0x94ac3) [7f1d21494ac3]
6: /lib/x86_64-linux-gnu/libc.so.6 (7f1d21400000+0x126850) [7f1d21526850]
6: /lib/x86_64-linux-gnu/libc.so.6 (7f1d21400000+0x126850) [7f1d21526850]
Info: suricata: time elapsed 12.128s [SCPrintElapsedTime:suricata.c:1167]
Perf: flow-manager: 0 flows processed [FlowRecycler:flow-manager.c:1134]
Perf: dpdk: Port 1 (net_null1) - rx_good_packets: 28529056 [PrintDPDKPortXstats:source-dpdk.c:691]
Perf: dpdk: Port 1 (net_null1) - tx_good_packets: 29075439 [PrintDPDKPortXstats:source-dpdk.c:691]
Perf: dpdk: Port 1 (net_null1) - rx_q0_packets: 28529056 [PrintDPDKPortXstats:source-dpdk.c:691]
Perf: dpdk: Port 1 (net_null1) - tx_q0_packets: 29075439 [PrintDPDKPortXstats:source-dpdk.c:691]
Actions

Also available in: Atom PDF