tbarbette / fastclick

FastClick - A faster version of the Click Modular Router featuring batching, advanced multi-processing and improved Netmap and DPDK support (ANCS'15). Check the metron branch for Metron specificities (NSDI'18). PacketMill modifications (ASPLOS'21) as well as MiddleClick(ToN, 2021) are merged in main.
Other
280 stars 81 forks source link

Unable to attach to a netmap host ring #56

Open piotrjurkiewicz opened 6 years ago

piotrjurkiewicz commented 6 years ago

FastClick is unable to attach to a host ring (using netmap:eth0^ interface name). It seems that it always attach to default hardware rings, no matter what modifier is given after interface name. In vanilla Click attaching to host rings works as expected. The same goes with pipes.

Receiving packets from host ring is useful when some control applications need to be run in userspace. In my case I run Quagga daemons on each router. They need to exchange routing protocol control packets. In vanilla Click I receive Quagga packets from host ring (with FromDevice(netmap:eth0^)) and inject them to ToDevice(netmap:eth0), providing connectivity between Quagga and physical interface. In FastClick it is impossible.

tbarbette commented 6 years ago

Yes this is true. The problem is that FastClick needs to overwrite some specifiers because we decide by ourselves how many queues to attach to, and the core assignments. For that reason there is some manual parsing that does not support rings. I completely agree with you that they are useful, but recently I used more DPDK and FastClick has proper ring support for it.

If you feel like it you can send a PR. Not sure when I'll be able to look at it.

Btw, there was some problem with Netmap on mainline recently, it works as it for you?