25 #include "ns3/packet.h" 26 #include "ns3/ipv4-header.h" 27 #include "ns3/udp-header.h" 28 #include "ns3/tcp-header.h" 29 #include "ns3/udp-l4-protocol.h" 30 #include "ns3/tcp-l4-protocol.h" 32 #include "ns3/epc-tft-classifier.h" 103 virtual void DoRun (
void);
114 :
TestCase (BuildNameString (c, d, sa, da, sp, dp, tos, tftId)),
119 NS_LOG_FUNCTION (
this << c << d << sa << da << sp << dp << tos << tftId);
144 std::ostringstream oss;
151 <<
", tos = 0x" << std::hex << (int) tos
152 <<
" --> tftId = " << tftId;
205 pf1_1_1.localAddress.Set (
"2.0.0.0");
206 pf1_1_1.remoteMask.Set (0xFF000000);
207 pf1_1_1.localMask.Set (0xFF000000);
208 tft1_1->Add (pf1_1_1);
215 tft1_1->Add (pf1_1_2);
225 pf1_2_1.remotePortEnd = 1035;
226 tft1_2->
Add (pf1_2_1);
231 tft1_2->
Add (pf1_2_2);
237 tft1_2->
Add (pf1_2_3);
243 tft1_2->
Add (pf1_2_4);
285 c2->
Add (EpcTft::Default (), 1);
321 c3->
Add (EpcTft::Default (), 1);
360 tft4_1->Add (pf1_2_3);
363 tft4_2->
Add (pf1_2_4);
Direction
Indicates the direction of the traffic that is to be classified.
uint8_t Add(PacketFilter f)
add a PacketFilter to the Traffic Flow Template
EpcTftClassifierTestSuite()
static EpcTftClassifierTestSuite g_lteTftClassifierTestSuite
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
Test case to check the functionality of the Tft Classifier.
void Add(Ptr< EpcTft > tft, uint32_t id)
add a TFT to the Classifier
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
uint8_t m_tftId
the TFT ID
uint16_t localPortEnd
end of the port number range of the UE
Ptr< EpcTftClassifier > m_c
the EPC TFT classifier
Epc Tft Classifier Test Suite.
uint32_t Classify(Ptr< Packet > p, EpcTft::Direction direction)
classify an IP packet
UdpHeader m_udpHeader
the UDP header
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
#define NS_TEST_ASSERT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report and abort if not.
Ipv4Mask localMask
IPv4 address mask of the UE.
EpcTft::Direction m_d
the EPC TFT direction
EpcTftClassifierTestCase(Ptr< EpcTftClassifier > c, EpcTft::Direction d, Ipv4Address sa, Ipv4Address da, uint16_t sp, uint16_t dp, uint8_t tos, uint32_t tftId)
Constructor.
Ipv4Address remoteAddress
IPv4 address of the remote host.
uint16_t remotePortEnd
end of the port number range of the remote host
Ipv4Header m_ipHeader
the IPv4 header
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Ipv4Address localAddress
IPv4 address of the UE.
void Set(uint32_t mask)
input mask is in host order.
NS_LOG_LOGIC("Net device "<< nd<< " is not bridged")
static std::string BuildNameString(Ptr< EpcTftClassifier > c, EpcTft::Direction d, Ipv4Address sa, Ipv4Address da, uint16_t sp, uint16_t dp, uint8_t tos, uint32_t tftId)
Build name string.
virtual void DoRun(void)
Implementation to actually run this TestCase.
void Set(uint32_t address)
input address is in host order.
Ipv4 addresses are stored in host order in this class.
virtual ~EpcTftClassifierTestCase()
Ipv4Mask remoteMask
IPv4 address mask of the remote host.
TcpHeader m_tcpHeader
the TCP header
void AddHeader(const Header &header)
Add header to this packet.
uint16_t remotePortStart
start of the port number range of the remote host
Implement the data structure representing a TrafficFlowTemplate Packet Filter.
uint16_t localPortStart
start of the port number range of the UE