Instead of running the repeater script, and in order to have EMANE publish to 
both places, maybe you could join the e.g. eth0 interface (if that is the 
physical one connected to your network) to the controlnet bridge. Then you can 
move the address from eth0 to the bridge device.

This would put all of the node's ctrl0 on your physical network. All should be 
able to subscribe to the events. The multicast route on the host could use dev 
b.ctrlnet.nnnnn.

Also nrlsmf another option for duplicating the packets?

From: Cheng, Bow-Nan - 0665 - MITLL [mailto:[email protected]]
Sent: Thursday, March 27, 2014 7:08 PM
To: Ahrenholz, Jeffrey M; [email protected]
Subject: Re: Subscribing to emane events inside containers

Thanks Jeff! This seems to do the trick!

Is there a way for EMANE to publish events on 2 different interfaces?

From: <Ahrenholz>, Jeffrey M 
<[email protected]<mailto:[email protected]>>
Date: Thursday, March 27, 2014 9:14 PM
To: Information Services Department 
<[email protected]<mailto:[email protected]>>, 
"[email protected]<mailto:[email protected]>" 
<[email protected]<mailto:[email protected]>>
Subject: RE: Subscribing to emane events inside containers

Bow-Nan,
This error occurs because there is no multicast route when loading the EMANE 
Event Service library. (The IGMP join is unable to be sent.) You can fix this 
within each node by enabling the DefaultMulticastRoute service or by running 
the following in the node:

ip ro add 224.0.0.0/4 dev ctrl0

If the EMANE events are originating from some external source, then your 
repeater script approach seems reasonable. If you are running an 
emaneeventservice locally on the host, or if CORE is generating the location 
events, then you could probably just add a multicast route (on the host) giving 
the "dev b.ctrlnet.nnnnn" device, so the multicast EMANE location events are 
directed to the controlnet.

-Jeff

From: 
[email protected]<mailto:[email protected]>
 [mailto:[email protected]] On Behalf Of Cheng, Bow-Nan - 
0665 - MITLL
Sent: Thursday, March 27, 2014 1:45 PM
To: [email protected]<mailto:[email protected]>
Subject: [emane-users] Subscribing to emane events inside containers

Hello,

I currently am using CORE to run tests with EMANE. In the current setup, EMANE 
is run centralized on the host system while CORE spawns off containers. I would 
like to expose EMANE position events into each container and process the 
messages. Here's how I'm thinking of doing this:

  1.  Inside CORE, create a controlnet
  2.  On the host system, have a multicast repeater script that listens for 
EMANE events and redirects it to the bridged interface created by CORE for the 
control net
  3.   Inside the container, subscribe to the emaneevents and do my parsing 
there.
I have #1 and #2 working. For #3, I'd like to use the EMANE user demo #19 
(eventsubscriber.py) to subscribe to EMANE events and print them. Running this 
script on the host system works perfectly.. However, when I try to run the 
script inside the container, I get an error:

root@n1:~/Documents/demonstration/19# ./eventsubscriber.py
Traceback (most recent call last):
  File "./eventsubscriber.py", line 15, in <module>
    service = emaneeventservice.EventService()
emaneeventservice.error: Transport option add membership

I'm suspecting it cannot find a library that it needs. I'm wondering if there's 
anything special I need to enable inside the container to be able to use the 
emaneeventservice python bindings inside a container?

Also, if there's an easier way to do this (getting emane events inside 
containers with EMANE running in centralized), please share. Thanks!

-Bow-Nan
_______________________________________________
emane-users mailing list
[email protected]
http://pf.itd.nrl.navy.mil/mailman/listinfo/emane-users

Reply via email to