How to make netmap NS_FORWARD work with NR_REG_ONE_NIC?
Luigi Rizzo
rizzo at iet.unipi.it
Mon Mar 24 16:10:00 UTC 2014
On Mon, Mar 24, 2014 at 4:45 PM, Mark Delany <c2h at romeo.emu.st> wrote:
> (Very recent fbsd10)
>
> My application is taking advantage of NR_REG_ONE_NIC to register
> separate handlers for each h/w ring. (Pro tip, you must re-open
> /dev/netmap each time, a dup() fd doesn't work).
>
> While good for performance, it unfortunately appears that NS_FORWARD
> does not work in this mode - presumably because NR_REG_ONE_NIC doesn't
> include the host ring.
>
correct, this is not a supported mode at the moment.
If you want to implement it you should do it into netmap_poll()
and create another constant NS_REG_ONE_NIC_SW for the new mode.
The difficulty is that we do not really have the equivalent
of a multiqueue host port in our system.
cheers
luigi
> Now it's possible I simply have a bug and NS_FORWARD should work with
> NR_REG_ONE_NIC - I have demo code I can share if needed - but assuming
> for a moment I don't have a bug...
>
> What's the right way to implement host forwarding with NR_REG_ONE_NIC?
>
> Do I have to register an independent handler with NR_REG_SW_NIC and
> have the h/w ring handlers synchronize with it? If so, I also presume
> the NR_REG_SW_NIC handler has to manage transfers in both directions,
> yes?
>
> I'm not keen on that approach if I can avoid it as it introduces
> synchronization costs between handlers where previously I needed none.
>
> I also looked at the kernel module and determined that nr_flags =
> NR_REG_ONE_NIC | NR_REG_SW_NIC is invalid. Oh well. That would have
> solved my problem nicely.
>
>
> Mark.
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
>
--
-----------------------------------------+-------------------------------
Prof. Luigi RIZZO, rizzo at iet.unipi.it . Dip. di Ing. dell'Informazione
http://www.iet.unipi.it/~luigi/ . Universita` di Pisa
TEL +39-050-2211611 . via Diotisalvi 2
Mobile +39-338-6809875 . 56122 PISA (Italy)
-----------------------------------------+-------------------------------
More information about the freebsd-net
mailing list