IPC between vimage instances?

Julian Elischer julian at elischer.org
Mon Jun 13 17:24:19 GMT 2005



Ragnar Lonn wrote:

>
>
>> As you mention, the usual answer is to get the syslog on each system to
>> forward everything to one logging system.
>>
>> you could add a second interface to each vimage just for logging to
>> keep it separate from the testing..
>
>
>
> Hmm, I have avoided this because I didn't want to do a lot of interface
> housekeeping. Actually, this leads to another question of mine :-)
>
> Network interfaces can't be removed under FreeBSD, something that
> causes me a lot of trouble as I create many interfaces and move them 
> to many
> vimages. Then I remove vimages in order to create new ones 
> (reconfigure the
> client simulation setup) and the network interfaces get dumped into 
> the default
> vimage, from where I have to collect them. I cant just create new 
> interfaces
> when the setup is to be reconfigured because I can't delete the old 
> interfaces.


interface removal in 4.x was nt quite "finished"
there are several viewpoints from which th einterface is not quite removed.
(as you have found)
I can not remember the details as It all changed in 5.x
(though vimage doesn't work in 5.x )

>
> Or can I?
>
> Example:
>
> ngctl mkpeer . eiface hook ether
>
> ...results in ngeth0 at deafult being created. Then I do:
>
> ngctl shutdown ngeth0:
>
> ..and the interface is gone. Seems that doing a shutdown actually 
> causes the
> interface to get removed, right?  But then I do something like this:
>
> # create ngeth0 at default
> ngctl mkpeer . eiface hook ether
> # create ngeth1 at default
> ngctl mkpeer . eiface hook ether
> # move ngeth1
> vimage -i myvimage ngeth1
>
> ....the interface is moved to ngeth0 at myvimage. Then I do:
>
> ngctl shutdown ngeth0:
> vimage myvimage
> vimage -i - ngeth0
>
> ...and the interface is moved back to the deafult vimage, BUT it is
> named ngeth1 at default. Even though ngeth0 at default has been shutdown
> and is nowhere to be seen. This makes me suspect that interfaces aren't
> properly removed when I issue a shutdown even though they might seem to
> be gone, and I have therefore decided to reuse interfaces, rather than
> remove them.

it's possible that the unit number is stored in the ng_ether driver and 
is therefore
not split for the vimages. so if the code gets a new unit number for 
the  new instance before
removing the old instance, the unit number will be 1 and not 0..

just a quess.


>
> Is this assumption correct?    Or is it just a naming issue that won't 
> result
> in some resource exhaustion eventually if I continue creating, moving
> and removing interfaces?
>
> Being able to remove interfaces would be really great. Then I could
> create extra logging interfaces in each vimage and not worry about
> the cleanup nightmare afterwards. Right now, I have a lot of script
> code just to find and reuse old ngeth interfaces sitting around in the
> default vimage and if I'm to have two types of those interfaces
> (one for logging, that has one underlying netgraph tree structure, and
> one for test traffic, using another netgraph tree structure) it would
> likely be at least twice as much trouble. That's why I was looking for
> some other way of communicating between different vimages.


"use the source Luke"
I know it seems like a lot but the netgraph code and the networking 
interface code are
relatively simple..

>
> Regards,
>
>  /Ragnar
>
>
>
>
>
>


More information about the freebsd-net mailing list