9#include "ns3/boolean.h" 
   10#include "ns3/inet6-socket-address.h" 
   11#include "ns3/internet-stack-helper.h" 
   14#include "ns3/simple-channel.h" 
   15#include "ns3/simple-net-device.h" 
   16#include "ns3/simulator.h" 
   17#include "ns3/sixlowpan-net-device.h" 
   18#include "ns3/socket-factory.h" 
   19#include "ns3/socket.h" 
   21#include "ns3/udp-socket-factory.h" 
   54    void DoRun() 
override;
 
 
   74    : 
TestCase(
"Sixlowpan implementation")
 
 
   87    uint32_t availableData [[maybe_unused]] = socket->GetRxAvailable();
 
 
   96    uint8_t buffer[] = 
"\"Can you tell me where my country lies?\" \\ said the unifaun to his true " 
   97                       "love's eyes. \\ \"It lies with me!\" cried the Queen of Maybe \\ - for her " 
   98                       "merchandise, he traded in his prize.";
 
 
  122    internet.SetIpv4StackInstall(
false);
 
  126    internet.Install(rxNode);
 
  131        rxNode->AddDevice(rxDev);
 
  134        rxNode->AddDevice(rxSix);
 
  135        rxSix->SetNetDevice(rxDev);
 
  138        ipv6->AddInterface(rxDev);
 
  139        uint32_t netdev_idx = ipv6->AddInterface(rxSix);
 
  142        ipv6->AddAddress(netdev_idx, ipv6Addr);
 
  143        ipv6->SetUp(netdev_idx);
 
  148    internet.Install(txNode);
 
  153        txNode->AddDevice(txDev);
 
  156        txNode->AddDevice(txSix);
 
  157        txSix->SetNetDevice(txDev);
 
  160        ipv6->AddInterface(txDev);
 
  161        uint32_t netdev_idx = ipv6->AddInterface(txSix);
 
  164        ipv6->AddAddress(netdev_idx, ipv6Addr);
 
  165        ipv6->SetUp(netdev_idx);
 
  170    rxDev->SetChannel(channel1);
 
  171    txDev->SetChannel(channel1);
 
  175    Ptr<Socket> rxSocket = rxSocketFactory->CreateSocket();
 
  182    Ptr<Socket> txSocket = txSocketFactory->CreateSocket();
 
  183    txSocket->SetAllowBroadcast(
true);
 
  189    uint8_t rxBuffer[180];
 
  190    uint8_t txBuffer[180] = 
"\"Can you tell me where my country lies?\" \\ said the unifaun to his " 
  191                            "true love's eyes. \\ \"It lies with me!\" cried the Queen of Maybe \\ " 
  192                            "- for her merchandise, he traded in his prize.";
 
 
Ptr< Packet > m_receivedPacket
received packet
void DoRun() override
Implementation to actually run this TestCase.
void SendData(Ptr< Socket > socket, std::string to)
Send data function.
void DoSendData(Ptr< Socket > socket, std::string to)
Send data function.
void ReceivePacket(Ptr< Socket > socket, Ptr< Packet > packet, const Address &from)
Packet receive function.
void ReceivePkt(Ptr< Socket > socket)
Packet receive function.
a polymophic address class
aggregate IP/TCP/UDP functionality to existing Nodes.
Describes an IPv6 address.
Access to the IPv6 forwarding table, interfaces, and configuration.
IPv6 address associated with an interface.
Describes an IPv6 prefix.
static Mac48Address ConvertFrom(const Address &address)
static Mac48Address Allocate()
Allocate a new Mac48Address.
Smart pointer class similar to boost::intrusive_ptr.
static void Destroy()
Execute the events scheduled with ScheduleDestroy().
static void ScheduleWithContext(uint32_t context, const Time &delay, FUNC f, Ts &&... args)
Schedule an event with the given context.
static void Run()
Run the simulation.
void AddTestCase(TestCase *testCase, Duration duration=Duration::QUICK)
Add an individual child TestCase to this test suite.
TestCase(const TestCase &)=delete
@ UNIT
This test suite implements a Unit Test.
TestSuite(std::string name, Type type=Type::UNIT)
Construct a new test suite.
API to create UDP socket instances.
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
Ptr< T > CreateObject(Args &&... args)
Create an object by type, with varying number of constructor parameters.
Ptr< T > Create(Ts &&... args)
Create class instances by constructors with varying numbers of arguments and return them by Ptr.
#define NS_TEST_EXPECT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report if not.
Time Seconds(double value)
Construct a Time in the indicated unit.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Callback< R, Args... > MakeCallback(R(T::*memPtr)(Args...), OBJ objPtr)
Build Callbacks for class method members which take varying numbers of arguments and potentially retu...
static SixlowpanIphcTestSuite g_sixlowpanIphcTestSuite
Static variable for test initialization.