void
Ipv4L3ClickProtocol::SetupLoopback (void)
{
NS_LOG_FUNCTION_NOARGS ();
Ptr<Ipv4Interface> interface = CreateObject<Ipv4Interface> ();创建接口
Ptr<LoopbackNetDevice> device = 0;初始化环回设备
// First check whether an existing LoopbackNetDevice exists on the node
for (uint32_t i = 0; i < m_node->GetNDevices (); i++)
{
if ((device = DynamicCast<LoopbackNetDevice> (m_node->GetDevice (i))))
{
break;
}
}
if (device == 0)没找到环回设备
{
device = CreateObject<LoopbackNetDevice> ();创建环回设备
m_node->AddDevice (device);加到节点上
}
interface->SetDevice (device);以下没看懂
interface->SetNode (m_node);
Ipv4InterfaceAddress ifaceAddr = Ipv4InterfaceAddress (Ipv4Address::GetLoopback (), Ipv4Mask::GetLoopback ());
interface->AddAddress (ifaceAddr);
uint32_t index = AddIpv4Interface (interface);
Ptr<Node> node = GetObject<Node> ();
node->RegisterProtocolHandler (MakeCallback (&Ipv4L3ClickProtocol::Receive, this),
Ipv4L3ClickProtocol::PROT_NUMBER, device);
interface->SetUp ();
if (m_routingProtocol != 0)
{
m_routingProtocol->NotifyInterfaceUp (index);
}
}
ns3为协议默认安装的loopback接口
最新推荐文章于 2024-07-15 00:31:52 发布