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