Hello, I have an Intel 82599ES based dual port NIC, and for each of the two interfaces I use some ntuples rules to make sure that every incoming packet goes to either queue 0 or 1. I would like to do the following: packets from queue 0 should be treated normally, but each packet arriving to queue 1 should immediately be sent out the other interface (for queue 1 packets, it’s like the computer simply joins the two cables). The only catch is that I want to minimize the performance hit on running applications while doing this forwarding at line rate.
This means that I can’t really afford to go all the way through the Linux stack and the usual tools, as it proves to be a poor solution in that regard, while also being unable to actually deal with 1500B packets coming at 10Gbps without losing a significant amount (at least on my machine) as far as the forwarding part is concerned. I also can’t use something like netmap, because (to my limited knowledge) it entails forfeiting various hardware offload features for packets leaving/going to the host stack. With all that being said, I was thinking that maybe the best solution is to attempt an implementation of the aforementioned behaviour at driver level. My first (and only so far) approach was to intercept skbs in ixgbe_rx_skb, and then try to send them away with ixgbe_xmit_frame. The result was that something apparently left the other interface, but the packet contents didn’t make too much sense. Before working more on it, and if you allow me, I would like to ask two (I hope not too broad) questions. First of all, is it actually possible to achieve this ? Secondly, would it require extensive additions to the existing code, or I should be fine playing around with primitives that are already there ? Thanks for taking time to read this. Regards, Alex ------------------------------------------------------------------------------ Slashdot TV. Video for Nerds. Stuff that matters. http://tv.slashdot.org/ _______________________________________________ E1000-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired
