Re: RFC: net 00/05: routing based send-to-self implementation
From: Ben Greear <hidden>
Date: 2009-11-30 20:15:39
On 11/30/2009 12:04 PM, Benjamin LaHaise wrote:
On Mon, Nov 30, 2009 at 11:37:31AM -0800, Ben Greear wrote:quoted
This doesn't work if you want to have one application manage lots of interfaces and send traffic between these interfaces. Certainly there are use-cases that can use multiple name-spaces, but it's nice to have the option not to use them as well.Actually, it's quite doable from within one application. An application I recently adapted to make use of multiple network namespaces within a single process by way of pthreads and unshare(CLONE_NEWNET). The scheme I used is to just open the socket in a new namespace in a thread. Since the file descriptor table is still shared, it's easy to send/receive data from any other thread, regardless of which virtual network namespace it's in. All told, setting up virtual routers with namespaces is pretty easy.
That still sounds more complicated than the proposed routing table changes, at least for my application. Since I also want to gather stats, set/watch routes, etc, on each network device, would I have to keep a thread and netlink socket running in each name-space in order to see the various devices? Thanks, Ben -- Ben Greear [off-list ref] Candela Technologies Inc http://www.candelatech.com