bngblaster icon indicating copy to clipboard operation
bngblaster copied to clipboard

Support for NETMAP framework, to support other Oses that Linux.

Open tatuzemdp opened this issue 3 years ago • 12 comments

Hi there, any change to allow netmap to be used for high speed access to NIC rings?

tatuzemdp avatar Mar 03 '21 16:03 tatuzemdp

I already considered netmap as an good option which should also allow higher PPS compared to packet_mmap. Plan would be to support multiple IO modes like packet_mmap (default), netmap or DPDK.

Which OS is interesting for you besides Linux (FreeBSD, Windows, ...)?

GIC-de avatar Mar 03 '21 18:03 GIC-de

Hi there! For now just interested on FreeBSD...

tatuzemdp avatar Mar 04 '21 08:03 tatuzemdp

If you want i can help, not really good at coding but at least some donation.

tatuzemdp avatar Mar 04 '21 09:03 tatuzemdp

You can try initial draft with netmap support here: https://github.com/rtbrick/bngblaster/tree/netmap

cd build
cmake -DBNGBLASTER_NETMAP=on -DBNGBLASTER_VERSION=netmap ..

Feedback welcome!

GIC-de avatar Mar 18 '21 19:03 GIC-de

To enable netmap, the following needs to be added in config.

{
    "interfaces": {
        "tx-interval": 1, 
        "rx-interval": 1,
        "io-mode": "netmap",
        "network": {
            "interface": "veth2",
            "address": "100.0.0.10",
            "gateway": "100.0.0.2"
        }
    }
}

The rx/tx interval is 5ms per default but you can lower the poll rate to 1ms to reach higher PPS values.

GIC-de avatar Mar 18 '21 19:03 GIC-de

nice!!! Will try it tomorrow morning!CheerssantiOn 18 Mar 2021 20:05, Christian Giese @.***> wrote: You can try initial draft with netmap support here: https://github.com/rtbrick/bngblaster/tree/netmap cd build cmake -DBNGBLASTER_NETMAP=on -DBNGBLASTER_VERSION=netmap ..

Feedback welcome!

—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.

tatuzemdp avatar Mar 18 '21 21:03 tatuzemdp

Thanks a lot. I already prep the server. Will clone tonightSantiOn 18 Mar 2021 20:07, Christian Giese @.***> wrote: To enable netmap, the following needs to be added in config. { "interfaces": { "tx-interval": 1, "rx-interval": 1, "io-mode": "netmap", "network": { "interface": "veth2", "address": "100.0.0.10", "gateway": "100.0.0.2" } } }

The rx/tx interval is 5ms per default but you can lower the poll rate to 1ms to reach higher PPS values.

—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.

tatuzemdp avatar Mar 19 '21 14:03 tatuzemdp

Dear, Chris, hope you are doing fine.

I clone and tried to compile but having issues with libdict. going out now but will try to sort it later.

Basically libdict seems to be broken, hence removed from FreeBSD 6 months ago (lucky me).

I will keep you posted.

Santi

On 3/18/21 7:05 PM, Christian Giese wrote:

You can try initial draft with netmap support here: https://github.com/rtbrick/bngblaster/tree/netmap https://github.com/rtbrick/bngblaster/tree/netmap

|cd build cmake -DBNGBLASTER_NETMAP=on -DBNGBLASTER_VERSION=netmap .. |

Feedback welcome!

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/rtbrick/bngblaster/issues/16#issuecomment-802213019, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKPKEKR34QLECHTHZQN4IUTTEJFIDANCNFSM4YRRRAIQ.

tatuzemdp avatar Mar 20 '21 11:03 tatuzemdp

You can build/install libdict manually from here:

https://github.com/rtbrick/libdict

GIC-de avatar Mar 20 '21 12:03 GIC-de

Will do! Thanks for the pointer!On 20 Mar 2021 13:07, Christian Giese @.***> wrote: You can build/install libdict manually from here: https://github.com/rtbrick/libdict

—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.

tatuzemdp avatar Mar 20 '21 15:03 tatuzemdp

Hi Chris,

SO, libdict is now compile/installed and out of the way.

As expected, is complaining about linux/if_packet.h (just commented out to see where else it complain) and got issues with CIRCLEQ that is not part of sys/queue.h.

I will continue on later on, keep you posted.

Santi

On 3/20/21 12:07 PM, Christian Giese wrote:

You can build/install libdict manually from here:

https://github.com/rtbrick/libdict https://github.com/rtbrick/libdict

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/rtbrick/bngblaster/issues/16#issuecomment-803298888, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKPKEKSNPQNKORQDKD6D5XTTESFXHANCNFSM4YRRRAIQ.

tatuzemdp avatar Mar 20 '21 17:03 tatuzemdp

Chris, will be it be enough to replace circularq with a STAILQ?  -------- Original message --------From: Christian Giese @.> Date: 20/03/2021 13:07 (GMT+01:00) To: rtbrick/bngblaster @.> Cc: Santiago Martinez @.>, Author @.> Subject: Re: [rtbrick/bngblaster] Support for NETMAP framework, to support other Oses that Linux. (#16) You can build/install libdict manually from here: https://github.com/rtbrick/libdict

—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.

tatuzemdp avatar Mar 20 '21 18:03 tatuzemdp

The BNG Blaster will officially support Linux only.

GIC-de avatar Oct 25 '22 10:10 GIC-de