[ndnSIM] How to get a node's neighbour

Alex Afanasyev alexander.afanasyev at ucla.edu
Sun Mar 10 11:33:22 PDT 2013


Hi Pan,

In general, as in real system, you would need to implement some kind of a resource discovery protocol to discover all node's neighbors.  At the same time, in NS-3, since it is a simulation, it is technically possible to "discover" neighbors directly:

In NS-3 in general, you would enumerate all NetDevice's on a particular Node object (http://www.nsnam.org/doxygen/classns3_1_1_node.html):

for (uint32_t deviceId = 0; deviceId < node->GetNDevices (); deviceId ++)
{
    Ptr<NetDevice> device = node->GetDevice (deviceId);

    # get channel, to which device is connected (a "wire")
    Ptr<Channel> channel = device->GetChannel ();

    for (uint32_t channelDeviceId = 0; channelDeviceId < channel->GetNDevices (); channelDeviceId ++)
    {
        Ptr<NetDevice> channelDevice = channel->GetDevice (channelDeviceId);
        if (channelDevice == device)
            continue;

        # channelDevice is a "neighbor"
    }
}

---
Alex

On Mar 10, 2013, at 5:53 AM, panhgshine at 163.com wrote:

> Hi All,
> 
> I'm a beginner of NS3 and ndnSIM. Recently, I have read the cache replacement policy code.
> Now, I want to get a node's all neighbour. 
> Is there anyone can give me some advice or hint?
> 
> Thank you in advance.
> 
> Pan





More information about the ndnSIM mailing list