Re: [opennhrp-devel] How opennhrp works
Brought to you by:
fabled80
From: Timo T. <tim...@ik...> - 2014-06-19 13:54:44
|
On Thu, 19 Jun 2014 13:25:31 +0000 Martin Lajoie <re...@ho...> wrote: > I did some performance testing Cisco vs opennhrp, and one thing that > I’m not sure to understand is why opennhrp process is taking 7-8% CPU > utilization while data transfer. How opennhrp is involved to route > packet. I though that when the private to public mappings is done and > routes installed, opennhrp is job until some event (timer expires, SA > down, etc). Depends on traffic type. For regular unicast traffic that goes directly betweent two spokes (or spoke-hub) it should not be on the fast path. Due to the way the hub detects when to send traffic indication messages, the data flow that is being relayed by a hub (for two spokes) is intercepted with a PF_PACKET socket (basically tcpdump). I'm intending to make this better integrated with kernel, so that kernel would directly send the traffic indication via netlink to opennhrp. This should remove this overhead from hubs. Also multicast messages are captured in full by the same PF_PACKET socket, and sent out to all relevant nbma neighbours by opennhrp from userland. Once upon time I had RFC patch to integrate to kernel multicast forwarding code, but it needs to be reworked. If you get high-cpu on direct spoke-spoke connection, that sounds like the packet filter for PF_PACKET socket is calculated wrong, and is an opennhrp bug. /Timo |