A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
EpcTftClassifierTestCase Class Reference

Test case to check the functionality of the Tft Classifier. More...

+ Inheritance diagram for EpcTftClassifierTestCase:
+ Collaboration diagram for EpcTftClassifierTestCase:

Public Member Functions

 EpcTftClassifierTestCase (Ptr< EpcTftClassifier > c, EpcTft::Direction d, std::string sa, std::string da, uint16_t sp, uint16_t dp, uint8_t tos, uint32_t tftId, bool useIpv6)
 Constructor.
 
 ~EpcTftClassifierTestCase () override
 
- Public Member Functions inherited from ns3::TestCase
 TestCase (const TestCase &)=delete
 
virtual ~TestCase ()
 Destructor.
 
std::string GetName () const
 
TestCaseoperator= (const TestCase &)=delete
 

Private Member Functions

void DoRun () override
 Implementation to actually run this TestCase.
 

Static Private Member Functions

static std::string BuildNameString (Ptr< EpcTftClassifier > c, EpcTft::Direction d, std::string sa, std::string da, uint16_t sp, uint16_t dp, uint8_t tos, uint32_t tftId, bool useIpv6)
 Build name string.
 

Private Attributes

Ptr< EpcTftClassifierm_c
 the EPC TFT classifier
 
EpcTft::Direction m_d
 the EPC TFT direction
 
Ipv4Header m_ipHeader
 the IPv4 header
 
Ipv6Header m_ipv6Header
 the IPv6 header
 
TcpHeader m_tcpHeader
 the TCP header
 
uint8_t m_tftId
 the TFT ID
 
UdpHeader m_udpHeader
 the UDP header
 
bool m_useIpv6
 use IPv4 or IPv6 header/addresses
 

Additional Inherited Members

- Public Types inherited from ns3::TestCase
enum  TestDuration { QUICK = 1 , EXTENSIVE = 2 , TAKES_FOREVER = 3 }
 How long the test takes to execute. More...
 
- Protected Member Functions inherited from ns3::TestCase
 TestCase (std::string name)
 Constructor.
 
void AddTestCase (TestCase *testCase, TestDuration duration=QUICK)
 Add an individual child TestCase to this test suite.
 
TestCaseGetParent () const
 Get the parent of this TestCase.
 
bool IsStatusFailure () const
 Check if any tests failed.
 
bool IsStatusSuccess () const
 Check if all tests passed.
 
void SetDataDir (std::string directory)
 Set the data directory where reference trace files can be found.
 
void ReportTestFailure (std::string cond, std::string actual, std::string limit, std::string message, std::string file, int32_t line)
 Log the failure of this TestCase.
 
bool MustAssertOnFailure () const
 Check if this run should assert on failure.
 
bool MustContinueOnFailure () const
 Check if this run should continue on failure.
 
std::string CreateDataDirFilename (std::string filename)
 Construct the full path to a file in the data directory.
 
std::string CreateTempDirFilename (std::string filename)
 Construct the full path to a file in a temporary directory.
 

Detailed Description

Test case to check the functionality of the Tft Classifier.

Test consist of defining different TFT configurations, i.e. direction, ports, address, and it is checking if the clasiffication of UDP packets is done correctly.

Definition at line 48 of file test-epc-tft-classifier.cc.

Constructor & Destructor Documentation

◆ EpcTftClassifierTestCase()

EpcTftClassifierTestCase::EpcTftClassifierTestCase ( Ptr< EpcTftClassifier c,
EpcTft::Direction  d,
std::string  sa,
std::string  da,
uint16_t  sp,
uint16_t  dp,
uint8_t  tos,
uint32_t  tftId,
bool  useIpv6 
)

Constructor.

Parameters
cthe EPC TFT classifier
dthe EPC TFT direction
sathe source address (in IPv4 format)
dathe destination address (in IPv4 format)
spthe source port
dpthe destination port
tosthe TOS
tftIdthe TFT ID
useIpv6use IPv6 or IPv4 addresses. If set, addresses will be used as IPv4 mapped addresses

Definition at line 114 of file test-epc-tft-classifier.cc.

References m_ipHeader, m_ipv6Header, m_udpHeader, m_useIpv6, ns3::Ipv6Address::MakeIpv4MappedAddress(), NS_LOG_FUNCTION, ns3::UdpL4Protocol::PROT_NUMBER, ns3::Ipv4Header::SetDestination(), ns3::Ipv6Header::SetDestination(), ns3::UdpHeader::SetDestinationPort(), ns3::Ipv6Header::SetNextHeader(), ns3::Ipv6Header::SetPayloadLength(), ns3::Ipv4Header::SetPayloadSize(), ns3::Ipv4Header::SetProtocol(), ns3::Ipv4Header::SetSource(), ns3::Ipv6Header::SetSource(), ns3::UdpHeader::SetSourcePort(), ns3::Ipv4Header::SetTos(), and ns3::Ipv6Header::SetTrafficClass().

+ Here is the call graph for this function:

◆ ~EpcTftClassifierTestCase()

EpcTftClassifierTestCase::~EpcTftClassifierTestCase ( )
override

Definition at line 152 of file test-epc-tft-classifier.cc.

Member Function Documentation

◆ BuildNameString()

std::string EpcTftClassifierTestCase::BuildNameString ( Ptr< EpcTftClassifier c,
EpcTft::Direction  d,
std::string  sa,
std::string  da,
uint16_t  sp,
uint16_t  dp,
uint8_t  tos,
uint32_t  tftId,
bool  useIpv6 
)
staticprivate

Build name string.

Parameters
cthe EPC TFT classifier
dthe EPC TFT direction
sathe source address
dathe destination address
spthe source port
dpthe destination port
tosthe TOS
tftIdthe TFT ID
useIpv6use IPv6 or IPv4 addresses. If set, addresses will be used as IPv4 mapped addresses
Returns
the name string

Definition at line 157 of file test-epc-tft-classifier.cc.

References ns3::Ipv6Address::MakeIpv4MappedAddress().

+ Here is the call graph for this function:

◆ DoRun()

void EpcTftClassifierTestCase::DoRun ( )
overrideprivatevirtual

Implementation to actually run this TestCase.

Subclasses should override this method to conduct their tests.

Implements ns3::TestCase.

Definition at line 184 of file test-epc-tft-classifier.cc.

References ns3::EpcTftClassifier::Classify(), ns3::PacketMetadata::Enable(), m_c, m_d, m_ipHeader, m_ipv6Header, m_tftId, m_udpHeader, m_useIpv6, NS_LOG_LOGIC, NS_TEST_ASSERT_MSG_EQ, ns3::Ipv4L3Protocol::PROT_NUMBER, and ns3::Ipv6L3Protocol::PROT_NUMBER.

+ Here is the call graph for this function:

Member Data Documentation

◆ m_c

Ptr<EpcTftClassifier> EpcTftClassifierTestCase::m_c
private

the EPC TFT classifier

Definition at line 78 of file test-epc-tft-classifier.cc.

Referenced by DoRun().

◆ m_d

EpcTft::Direction EpcTftClassifierTestCase::m_d
private

the EPC TFT direction

Definition at line 79 of file test-epc-tft-classifier.cc.

Referenced by DoRun().

◆ m_ipHeader

Ipv4Header EpcTftClassifierTestCase::m_ipHeader
private

the IPv4 header

Definition at line 82 of file test-epc-tft-classifier.cc.

Referenced by EpcTftClassifierTestCase(), and DoRun().

◆ m_ipv6Header

Ipv6Header EpcTftClassifierTestCase::m_ipv6Header
private

the IPv6 header

Definition at line 83 of file test-epc-tft-classifier.cc.

Referenced by EpcTftClassifierTestCase(), and DoRun().

◆ m_tcpHeader

TcpHeader EpcTftClassifierTestCase::m_tcpHeader
private

the TCP header

Definition at line 85 of file test-epc-tft-classifier.cc.

◆ m_tftId

uint8_t EpcTftClassifierTestCase::m_tftId
private

the TFT ID

Definition at line 80 of file test-epc-tft-classifier.cc.

Referenced by DoRun().

◆ m_udpHeader

UdpHeader EpcTftClassifierTestCase::m_udpHeader
private

the UDP header

Definition at line 84 of file test-epc-tft-classifier.cc.

Referenced by EpcTftClassifierTestCase(), and DoRun().

◆ m_useIpv6

bool EpcTftClassifierTestCase::m_useIpv6
private

use IPv4 or IPv6 header/addresses

Definition at line 81 of file test-epc-tft-classifier.cc.

Referenced by EpcTftClassifierTestCase(), and DoRun().


The documentation for this class was generated from the following file: