26 #include "ns3/uinteger.h" 
   27 #include "ns3/tcp-header.h" 
   28 #include "ns3/udp-header.h" 
   43     .SetGroupName (
"Internet")
 
   62   return (DynamicCast<Ipv6QueueDiscItem> (item) != 0);
 
   72   static TypeId tid = 
TypeId (
"ns3::FqCoDelIpv6PacketFilter")
 
   74     .SetGroupName (
"Internet")
 
   76     .AddAttribute (
"Perturbation",
 
   77                    "The salt used as an additional input to the hash function of this filter",
 
   80                    MakeUintegerChecker<uint32_t> ())
 
  110   uint16_t srcPort = 0;
 
  111   uint16_t destPort = 0;
 
  133   buf[33] = (srcPort >> 8) & 0xff;
 
  134   buf[34] = srcPort & 0xff;
 
  135   buf[35] = (destPort >> 8) & 0xff;
 
  136   buf[36] = destPort & 0xff;
 
  143   uint32_t hash = 
Hash32 ((
char*) buf, 41);
 
  145   NS_LOG_DEBUG (
"Found Ipv6 packet; hash of the five tuple " << hash);
 
FqCoDelIpv6PacketFilter is the filter to be added to the FQCoDel queue disc to simulate the behavior ...
 
Smart pointer class similar to boost::intrusive_ptr. 
 
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
 
static TypeId GetTypeId(void)
Get the type ID. 
 
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system. 
 
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file...
 
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name. 
 
static TypeId GetTypeId(void)
Get the type ID. 
 
Hold an unsigned integer type. 
 
uint32_t Hash32(const char *buffer, const size_t size)
Compute 32-bit hash of a byte buffer, using the default hash function. 
 
uint32_t PeekHeader(Header &header) const 
Deserialize but does not remove the header from the internal buffer. 
 
virtual int32_t DoClassify(Ptr< QueueDiscItem > item) const 
Classify a packet. 
 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
 
uint32_t m_perturbation
hash perturbation value 
 
Describes an IPv6 address. 
 
virtual ~Ipv6PacketFilter()
 
Ipv6PacketFilter is the abstract base class for filters defined for IPv6 packets. ...
 
virtual ~FqCoDelIpv6PacketFilter()
 
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG. 
 
PacketFilter is the abstract base class for filters used by queue discs to classify packets...
 
FqCoDelIpv6PacketFilter()
 
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
 
a unique identifier for an interface. 
 
TypeId SetParent(TypeId tid)
Set the parent TypeId. 
 
virtual bool CheckProtocol(Ptr< QueueDiscItem > item) const 
Checks if the filter is able to classify a kind of items. 
 
void Serialize(uint8_t buf[16]) const 
Serialize this address to a 16-byte buffer.