105 Config::SetDefault(
"ns3::SatUtHelper::FwdLinkErrorModel", EnumValue(em));
106 Config::SetDefault(
"ns3::SatGwHelper::RtnLinkErrorModel", EnumValue(em));
109 Ptr<SatHelper> helper = CreateObject<SatHelper>(
113 NodeContainer gwUsers = Singleton<SatTopology>::Get()->GetGwUserNodes();
114 NodeContainer utUsers = Singleton<SatTopology>::Get()->GetUtUserNodes();
117 CbrHelper cbr(
"ns3::UdpSocketFactory",
118 Address(InetSocketAddress(helper->GetUserAddress(gwUsers.Get(0)), port)));
119 cbr.SetAttribute(
"Interval", StringValue(
"0.8s"));
122 PacketSinkHelper sink(
"ns3::UdpSocketFactory",
123 Address(InetSocketAddress(helper->GetUserAddress(utUsers.Get(0)), port)));
125 ApplicationContainer utApps = sink.Install(utUsers.Get(0));
126 utApps.Add(cbr.Install(utUsers.Get(0)));
127 utApps.Start(Seconds(1.0));
128 utApps.Stop(Seconds(2.5));
133 AddressValue(Address(InetSocketAddress(helper->GetUserAddress(gwUsers.Get(0)), port))));
136 AddressValue(Address(InetSocketAddress(helper->GetUserAddress(utUsers.Get(0)), port))));
138 ApplicationContainer gwApps = sink.Install(gwUsers.Get(0));
139 gwApps.Add(cbr.Install(gwUsers.Get(0)));
141 gwApps.Start(Seconds(1.0));
142 gwApps.Stop(Seconds(2.5));
144 Simulator::Stop(Seconds(2.5));
147 Simulator::Destroy();
149 Ptr<PacketSink> utReceiver = DynamicCast<PacketSink>(utApps.Get(0));
150 Ptr<CbrApplication> utSender = DynamicCast<CbrApplication>(utApps.Get(1));
152 Ptr<PacketSink> gwReceiver = DynamicCast<PacketSink>(gwApps.Get(0));
153 Ptr<CbrApplication> gwSender = DynamicCast<CbrApplication>(gwApps.Get(1));
158 NS_TEST_ASSERT_MSG_NE(utSender->GetSent(), (uint32_t)0,
"Nothing sent by UT user!");
159 NS_TEST_ASSERT_MSG_EQ(gwReceiver->GetTotalRx(),
161 "Packets were lost between UT and GW!");
163 NS_TEST_ASSERT_MSG_NE(gwSender->GetSent(), (uint32_t)0,
"Nothing sent by GW user!");
164 NS_TEST_ASSERT_MSG_EQ(utReceiver->GetTotalRx(),
166 "Packets were lost between GW and UT!");