On Wed, 6 Dec 2017 06:43:02 +0000
"Dorsett, Michal" <[email protected]> wrote:
> I think my wording was not clear enough:
>
> Every packet that enters through the device will be delayed by our
> application for 1 second.
> Given 10Gbps worth of traffic, for example, at an average packet size of 600
> bytes, this is roughly 2M packets per second.
>
> A 710-series NIC makes use of 1M mbufs in a queue at the very most. In order
> for us to delay 2M packets, we need to create several queues per NIC.
> I understand RSS is in the hardware, but hardware can be programmed, too, and
> hopefully turned off - and that's my question - whether, in addition to the
> RSS there is a round-robin policy that can be configured.
>
> Thanks,
>
> Michal
What I was suggesting is keep an internal ring buffer of packets.
Use a timer (rte_timer) to move the packets from ring buffer to device.
If you poll timer at 1000 hz, that would only be 2000 packets per interval.
The hardware queue can handle that.
RSS only matters on receive. You can dump any packet in any Tx queue.
On receive hardware supports:
* all packets on single queue
* packets spread across multiple queues by hash (RSS)
* packets directed to queue based on flow (a.ka. Flow Director).