23 #include "ns3/assert.h" 
   28 #define IPV4_ADDRESS_SIZE 4 
   29 #define OLSR_MSG_HEADER_SIZE 12 
   30 #define OLSR_PKT_HEADER_SIZE 4 
   53   for (b = 0; (seconds/
OLSR_C) >= (1 << b); ++b)
 
   60   double tmp = 16*(seconds/(
OLSR_C*(1<<b))-1);
 
   63   a = (int) std::ceil (tmp);
 
   77   return (uint8_t)((a << 4) | b);
 
   89   int a = (olsrFormat >> 4);
 
   90   int b = (olsrFormat & 0xf);
 
   92   return OLSR_C * (1 + a/16.0) * (1 << b);
 
  115     .AddConstructor<PacketHeader> ()
 
  174     .AddConstructor<MessageHeader> ()
 
  191       size += 
m_message.mid.GetSerializedSize ();
 
  195       size += 
m_message.hello.GetSerializedSize ();
 
  198       size += 
m_message.tc.GetSerializedSize ();
 
  201       size += 
m_message.hna.GetSerializedSize ();
 
  301   for (std::vector<Ipv4Address>::const_iterator iter = this->interfaceAddresses.begin ();
 
  302        iter != this->interfaceAddresses.end (); iter++)
 
  313   this->interfaceAddresses.clear ();
 
  317   this->interfaceAddresses.erase (this->interfaceAddresses.begin (),
 
  318                                   this->interfaceAddresses.end ());
 
  319   for (
int n = 0; n < numAddresses; ++n)
 
  332   for (std::vector<LinkMessage>::const_iterator iter = this->linkMessages.begin ();
 
  333        iter != this->linkMessages.end (); iter++)
 
  357   for (std::vector<LinkMessage>::const_iterator iter = this->linkMessages.begin ();
 
  358        iter != this->linkMessages.end (); iter++)
 
  386   this->linkMessages.clear ();
 
  388   uint16_t helloSizeLeft = messageSize;
 
  391   this->hTime = i.
ReadU8 ();
 
  392   this->willingness = i.
ReadU8 ();
 
  396   while (helloSizeLeft)
 
  408       helloSizeLeft -= lmSize;
 
  409       this->linkMessages.push_back (lm);
 
  439   for (std::vector<Ipv4Address>::const_iterator iter = this->neighborAddresses.begin ();
 
  440        iter != this->neighborAddresses.end (); iter++)
 
  451   this->neighborAddresses.clear ();
 
  459   this->neighborAddresses.clear ();
 
  460   for (
int n = 0; n < numAddresses; ++n)
 
  486   for (
size_t n = 0; n < this->associations.size (); ++n)
 
  500   this->associations.clear ();
 
  501   for (
int n = 0; n < numAddresses; ++n)
 
a class to represent an Ipv4 address mask 
NS_LOG_COMPONENT_DEFINE("OlsrHeader")
#define NS_ASSERT(condition)
NS_OBJECT_ENSURE_REGISTERED(NullMessageSimulatorImpl)
uint32_t ReadNtohU32(void)
iterator in a Buffer instance 
uint32_t Get(void) const 
Get the host-order 32-bit IP address. 
void WriteU16(uint16_t data)
void WriteHtonU16(uint16_t data)
void WriteHtonU32(uint32_t data)
Ipv4 addresses are stored in host order in this class. 
void WriteU8(uint8_t data)
#define NS_LOG_DEBUG(msg)
uint8_t SecondsToEmf(double seconds)
Converts a decimal number of seconds to the mantissa/exponent format. 
double EmfToSeconds(uint8_t olsrFormat)
Converts a number of seconds in the mantissa/exponent format to a decimal number. ...
uint16_t ReadNtohU16(void)
a unique identifier for an interface. 
TypeId SetParent(TypeId tid)