22#include "ns3/click-internet-stack-helper.h" 
   23#include "ns3/ipv4-click-routing.h" 
   24#include "ns3/ipv4-l3-protocol.h" 
   27#include "ns3/simple-net-device.h" 
   30#include <click/simclick.h> 
   39    internet.SetClickFile(node, 
"src/click/test/nsclick-test-lan-single-interface.click");
 
   48    rxDev1 = CreateObject<SimpleNetDevice>();
 
   50    node->AddDevice(rxDev1);
 
   55    ipv4->AddAddress(netdev_idx, ipv4Addr);
 
   56    ipv4->SetUp(netdev_idx);
 
   59class ClickIfidFromNameTest : 
public TestCase 
   62    ClickIfidFromNameTest();
 
   63    void DoRun() 
override;
 
   66ClickIfidFromNameTest::ClickIfidFromNameTest()
 
   67    : 
TestCase(
"Test SIMCLICK_IFID_FROM_NAME")
 
   72ClickIfidFromNameTest::DoRun()
 
   75    AddClickInternetStack(node);
 
   76    AddNetworkDevice(node,
 
   82    click->DoInitialize();
 
   86    ret = simclick_sim_command(click->m_simNode, SIMCLICK_IFID_FROM_NAME, 
"tap0");
 
   89    ret = simclick_sim_command(click->m_simNode, SIMCLICK_IFID_FROM_NAME, 
"tun0");
 
   92    ret = simclick_sim_command(click->m_simNode, SIMCLICK_IFID_FROM_NAME, 
"eth0");
 
   95    ret = simclick_sim_command(click->m_simNode, SIMCLICK_IFID_FROM_NAME, 
"tap1");
 
   98    ret = simclick_sim_command(click->m_simNode, SIMCLICK_IFID_FROM_NAME, 
"tun1");
 
  101    ret = simclick_sim_command(click->m_simNode, SIMCLICK_IFID_FROM_NAME, 
"eth1");
 
  105class ClickIpMacAddressFromNameTest : 
public TestCase 
  108    ClickIpMacAddressFromNameTest();
 
  109    void DoRun() 
override;
 
  112ClickIpMacAddressFromNameTest::ClickIpMacAddressFromNameTest()
 
  113    : 
TestCase(
"Test SIMCLICK_IPADDR_FROM_NAME")
 
  118ClickIpMacAddressFromNameTest::DoRun()
 
  121    AddClickInternetStack(node);
 
  122    AddNetworkDevice(node,
 
  126    AddNetworkDevice(node,
 
  132    click->DoInitialize();
 
  134    char* buf = 
new char[255];
 
  136    simclick_sim_command(click->m_simNode, SIMCLICK_IPADDR_FROM_NAME, 
"eth0", buf, 255);
 
  139    simclick_sim_command(click->m_simNode, SIMCLICK_MACADDR_FROM_NAME, 
"eth0", buf, 255);
 
  142                          "eth0 has Mac Address 00:00:00:00:00:01");
 
  144    simclick_sim_command(click->m_simNode, SIMCLICK_IPADDR_FROM_NAME, 
"eth1", buf, 255);
 
  147    simclick_sim_command(click->m_simNode, SIMCLICK_MACADDR_FROM_NAME, 
"eth1", buf, 255);
 
  150                          "eth0 has Mac Address 00:00:00:00:00:02");
 
  156    simclick_sim_command(click->m_simNode, SIMCLICK_IPADDR_FROM_NAME, 
"tap0", buf, 255);
 
  159    simclick_sim_command(click->m_simNode, SIMCLICK_MACADDR_FROM_NAME, 
"tap0", buf, 255);
 
  165class ClickTrivialTest : 
public TestCase 
  169    void DoRun() 
override;
 
  172ClickTrivialTest::ClickTrivialTest()
 
  173    : 
TestCase(
"Test SIMCLICK_GET_NODE_NAME and SIMCLICK_IF_READY")
 
  178ClickTrivialTest::DoRun()
 
  181    AddClickInternetStack(node);
 
  182    AddNetworkDevice(node,
 
  188    click->SetNodeName(
"myNode");
 
  189    click->DoInitialize();
 
  192    char* buf = 
new char[255];
 
  194    ret = simclick_sim_command(click->m_simNode, SIMCLICK_GET_NODE_NAME, buf, 255);
 
  197    ret = simclick_sim_command(click->m_simNode, SIMCLICK_IF_READY, 0);
 
  200    ret = simclick_sim_command(click->m_simNode, SIMCLICK_IF_READY, 1);
 
  203    ret = simclick_sim_command(click->m_simNode, SIMCLICK_IF_READY, 2);
 
  209class ClickIfidFromNameTestSuite : 
public TestSuite 
  212    ClickIfidFromNameTestSuite()
 
  215        AddTestCase(
new ClickTrivialTest, TestCase::QUICK);
 
  216        AddTestCase(
new ClickIfidFromNameTest, TestCase::QUICK);
 
  217        AddTestCase(
new ClickIpMacAddressFromNameTest, TestCase::QUICK);
 
  219} g_ipv4ClickRoutingTestSuite;
 
Ipv4 addresses are stored in host order in this class.
 
Access to the IPv4 forwarding table, interfaces, and configuration.
 
a class to store IPv4 address information on an interface
 
a class to represent an Ipv4 address mask
 
Smart pointer class similar to boost::intrusive_ptr.
 
#define NS_TEST_EXPECT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report if not.
 
Every class exported by the ns3 library is enclosed in the ns3 namespace.