18#include "ns3/icmpv4-l4-protocol.h"
19#include "ns3/icmpv6-l4-protocol.h"
20#include "ns3/ipv4-header.h"
21#include "ns3/ipv4-l3-protocol.h"
22#include "ns3/ipv6-header.h"
23#include "ns3/ipv6-l3-protocol.h"
25#include "ns3/packet.h"
26#include "ns3/tcp-header.h"
27#include "ns3/tcp-l4-protocol.h"
28#include "ns3/udp-header.h"
29#include "ns3/udp-l4-protocol.h"
96 uint16_t payloadSize =
ipv4Header.GetPayloadSize();
129 std::tuple<uint32_t, uint32_t, uint8_t, uint16_t>
fragmentKey =
155 std::tuple<uint32_t, uint32_t, uint8_t, uint16_t>
fragmentKey =
173 std::tuple<uint32_t, uint32_t, uint8_t, uint16_t>
fragmentKey =
249 NS_ABORT_MSG(
"EpcTftClassifier::Classify - Unknown IP type...");
263 std::map<uint32_t, Ptr<EpcTft>>::const_reverse_iterator
it;
271 if (tft->Matches(direction,
294 std::map<uint32_t, Ptr<EpcTft>>::const_reverse_iterator
it;
302 if (tft->Matches(direction,
std::map< std::tuple< uint32_t, uint32_t, uint8_t, uint16_t >, std::pair< uint32_t, uint32_t > > m_classifiedIpv4Fragments
Map with already classified IPv4 Fragments An entry is added when the port info is available,...
uint32_t Classify(Ptr< Packet > p, EpcTft::Direction direction, uint16_t protocolNumber)
classify an IP packet
void Add(Ptr< EpcTft > tft, uint32_t id)
add a TFT to the Classifier
std::map< uint32_t, Ptr< EpcTft > > m_tftMap
TFT map.
void Delete(uint32_t id)
delete an existing TFT from the classifier
Direction
Indicates the direction of the traffic that is to be classified.
Ipv4 addresses are stored in host order in this class.
static constexpr uint16_t PROT_NUMBER
Protocol number.
Describes an IPv6 address.
static constexpr uint16_t PROT_NUMBER
The protocol number for IPv6 (0x86DD).
Smart pointer class similar to boost::intrusive_ptr.
static constexpr uint8_t PROT_NUMBER
Protocol number (see http://www.iana.org/assignments/protocol-numbers)
static constexpr uint8_t PROT_NUMBER
Protocol number (see http://www.iana.org/assignments/protocol-numbers)
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
#define NS_ABORT_MSG(msg)
Unconditional abnormal program termination with a message.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_LOGIC(msg)
Use NS_LOG to output a message of level LOG_LOGIC.
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
#define NS_LOG_INFO(msg)
Use NS_LOG to output a message of level LOG_INFO.
Ptr< T > Create(Ts &&... args)
Create class instances by constructors with varying numbers of arguments and return them by Ptr.
Every class exported by the ns3 library is enclosed in the ns3 namespace.