Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 09 Feb 2007 15:58:20 +0200
From:      Artis Caune <Artis.Caune@latnet.lv>
To:        freebsd-net@FreeBSD.org
Subject:   synchronising information between kernel modules
Message-ID:  <45CC7DFC.7020306@latnet.lv>

next in thread | raw e-mail | index | archive | help
I would like to hear some ideas about how to synchronise information 
over network between two or more kernel modules.



Topology:

We have to FreeBSD boxes, which sit between two cisco switches and do 
traffic policy(shaping).
Switches are connected with GigaChannel link (two physical links) and 
load balance traffic based on src,dst IP address.
FreeBSD boxes sit between each physical GigaChannel link.


Kernel module:

It simpy pass or drop packets and increment counters.
After every pass or drop or configuration change I need to tell other 
boxes about this action.




I can use multicasts, like pfsync does, but multicasts are not reliable. 
If pfsync update is lost, it will be updated in next update or state 
time out. If our update is lost, specialy configuration update, bad 
things can happen. And there is problem with registering this module as 
kernel level multicast protocol - need to modify kernel sorurce and 
recompile.

I can use ip_output and catch it on other box with pfil hooks, but it's 
not reliable. Maybe some kind of send_update + wait_for_ack option?


I can also use userland daemon which establish conection with all peers 
and send/receive updates. Updates must be copied between kernel and 
userland.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?45CC7DFC.7020306>