Hi,

We are developing a traffic generator/analyser using PF_RING ZC on Intel
X710 Dual-port 10Gbps NICs.

We got stuck at an issue where packets at receive side have unwanted
buffering before they are received by our application.

- Our application uses the two interfaces.
- For each interface we open two PF_RING rings, one in send-only mode
and one in receive-only mode.
- It is a linux-based system.
- Our receive threads have scheduling policy `SCHED_RR` with minimum
priority.
- Our transmission threads have scheduling policy `SCHED_FIFO` with
minimum priority.

For testing we connected our interfaces back-to-back
In one of the scenarios we noticed:
- We see the `pfring_poll()` method return with timeout at the correct
timeout interval we specified (for both interfaces).
- We transmit a packet at interface A
- `pfring_poll()`/`pfring_recv()` at interface B does not detect it.
- When we check the interace statistics (ethtool -S enp8s0f1), the 'rx'
counters at interface B *did increase*.
- It is only after 8 packets (approx. 8 seconds) that we receive those 8
packets at once.

I have tried:
- Different pf_ring kernel module options (quick_mode)
- A lot of device configurations/features enabled / disabled.
- Many flags for `pfring_open` (currently PF_RING_PROMISC |
PF_RING_DO_NOT_PARSE | PF_RING_TIMESTAMP | PF_RING_HW_TIMESTAMP |
PF_RING_DNA_FIXED_RSS_Q_0 | PF_RING_REENTRANT)

Can someone help us out?
Does anyone have any idea how to disable this caching or decrease the
timeout when the packets are released to the application?

Thank you very much in advance!

P.S. Our current device configuration is:

        # ethtool -l enp8s0f0
        Channel parameters for enp8s0f0:
        Pre-set maximums:
        RX: 0
        TX: 0
        Other: 1
        Combined: 64
        Current hardware settings:
        RX: 0
        TX: 0
        Other: 1
        Combined: 1
        
        # ethtool -k enp8s0f0
        Features for enp8s0f0:
        rx-checksumming: on
        tx-checksumming: on
        tx-checksum-ipv4: on
        tx-checksum-ip-generic: off [fixed]
        tx-checksum-ipv6: on
        tx-checksum-fcoe-crc: off [fixed]
        tx-checksum-sctp: on
        scatter-gather: on
        tx-scatter-gather: on
        tx-scatter-gather-fraglist: off [fixed]
        tcp-segmentation-offload: off
        tx-tcp-segmentation: off
        tx-tcp-ecn-segmentation: off
        tx-tcp6-segmentation: off
        udp-fragmentation-offload: off [fixed]
        generic-segmentation-offload: off
        generic-receive-offload: on
        large-receive-offload: off [fixed]
        rx-vlan-offload: off
        tx-vlan-offload: off
        ntuple-filters: on
        receive-hashing: on
        highdma: on
        rx-vlan-filter: on
        vlan-challenged: off [fixed]
        tx-lockless: off [fixed]
        netns-local: off [fixed]
        tx-gso-robust: off [fixed]
        tx-fcoe-segmentation: off [fixed]
        fcoe-mtu: off [fixed]
        tx-nocache-copy: on
        loopback: off [fixed]
        rx-fcs: off [fixed]
        rx-all: off [fixed]
        
        # ethtool -g enp8s0f0
        Ring parameters for enp8s0f0:
        Pre-set maximums:
        RX: 4096
        RX Mini: 0
        RX Jumbo: 0
        TX: 4096
        Current hardware settings:
        RX: 512
        RX Mini: 0
        RX Jumbo: 0
        TX: 512
        
        # ethtool -c enp8s0f0
        Coalesce parameters for enp8s0f0:
        Adaptive RX: on  TX: on
        stats-block-usecs: 0
        sample-interval: 0
        pkt-rate-low: 0
        pkt-rate-high: 0
        
        rx-usecs: 62
        rx-frames: 0
        rx-usecs-irq: 0
        rx-frames-irq: 256
        
        tx-usecs: 122
        tx-frames: 0
        tx-usecs-irq: 0
        tx-frames-irq: 256
        
        rx-usecs-low: 0
        rx-frame-low: 0
        tx-usecs-low: 0
        tx-frame-low: 0
        
        rx-usecs-high: 0
        rx-frame-high: 0
        tx-usecs-high: 0
        tx-frame-high: 0

With best regards,
Tom.


-- 

________________________________________________________________________


| [email protected]
|
| Tom Ghyselinck
| Senior Engineer
| Excentis N.V.
| Gildestraat 8 B-9000 Ghent, Belgium
| Tel: +32 9 269 22 91 - Fax: +32 9 329 31 74

________________________________________________________________________

_______________________________________________
Ntop mailing list
[email protected]
http://listgateway.unipi.it/mailman/listinfo/ntop

Reply via email to