luigirizzo / netmap

Automatically exported from code.google.com/p/netmap
BSD 2-Clause "Simplified" License
1.86k stars 537 forks source link

Multi queue with multiple host rings #964

Open cakturk opened 3 months ago

cakturk commented 3 months ago

Hello,

I have a few of questions about netmap. Let's say I have a setup like this;

I have an ethernet card with 4 queues and I want to intercept packets between hw ring and host ring. In doing so, I want to take advantage of netmap's multiple host ring feature. In this case, each thread will intercept between a hardware ring and a host ring. Let's say we have a setup like this:

thread0 -i netmap:em0-0 -i netmap:em0^0 thread1 -i netmap:em0-1 -i netmap:em0^1 thread2 -i netmap:em0-2 -i netmap:em0^2 thread3 -i netmap:em0-3 -i netmap:em0^3

In this setup, let's imagine that we are receiving the first syn packet of a TCP stream from em0-2. What I'm wondering is, will all the remaining packets somehow pass through the same queues, or can the rest of the packets of this TCP session enter different queues? In other words, can I completely recreate the TCP session with the packets I capture from a single queue?

Thanks

vmaffione commented 2 months ago

This does not depend on netmap, but on your NIC RSS policy (which may be configured through ethtool). Typically each TCP session will end up on the same hardware queue.