#include "olsr-routing-protocol.h"
#include "olsr-repositories.h"
#include "ns3/boolean.h"
#include "ns3/enum.h"
#include "ns3/inet-socket-address.h"
#include "ns3/ipv4-header.h"
#include "ns3/ipv4-packet-info-tag.h"
#include "ns3/ipv4-route.h"
#include "ns3/ipv4-routing-protocol.h"
#include "ns3/ipv4-routing-table-entry.h"
#include "ns3/log.h"
#include "ns3/names.h"
#include "ns3/simulator.h"
#include "ns3/socket-factory.h"
#include "ns3/trace-source-accessor.h"
#include "ns3/udp-socket-factory.h"
#include "ns3/uinteger.h"
#include <iomanip>
#include <iostream>
Go to the source code of this file.
Namespaces | |
ns3 | |
Every class exported by the ns3 library is enclosed in the ns3 namespace. | |
ns3::olsr | |
ns3::olsr::anonymous_namespace{olsr-routing-protocol.cc} | |
Macros | |
#define | DELAY(time) |
Gets the delay between a given time and the current time. More... | |
#define | JITTER (Seconds(m_uniformRandomVariable->GetValue(0, OLSR_MAXJITTER))) |
Random number between [0-OLSR_MAXJITTER] used to jitter OLSR packet transmission. More... | |
#define | NS_LOG_APPEND_CONTEXT |
Implementation of OLSR agent and related classes. More... | |
#define | OLSR_DUP_HOLD_TIME Seconds(30) |
Dup holding time. More... | |
#define | OLSR_HNA_HOLD_TIME Time(3 * m_hnaInterval) |
HNA holding time. More... | |
#define | OLSR_MAX_ADDRS 64 |
Maximum number of addresses advertised on a message. More... | |
#define | OLSR_MAX_HELLOS 12 |
Maximum number of hellos per message (4 possible link types * 3 possible nb types). More... | |
#define | OLSR_MAX_MSGS 64 |
Maximum number of messages per packet. More... | |
#define | OLSR_MAX_SEQ_NUM 65535 |
Maximum allowed sequence number. More... | |
#define | OLSR_MAXJITTER (m_helloInterval.GetSeconds() / 4) |
Maximum allowed jitter. More... | |
#define | OLSR_MID_HOLD_TIME Time(3 * m_midInterval) |
MID holding time. More... | |
#define | OLSR_NEIGHB_HOLD_TIME Time(3 * OLSR_REFRESH_INTERVAL) |
Neighbor holding time. More... | |
#define | OLSR_REFRESH_INTERVAL m_helloInterval |
Period at which a node must cite every link and every neighbor. More... | |
#define | OLSR_TOP_HOLD_TIME Time(3 * m_tcInterval) |
Top holding time. More... | |
Enumerations | |
enum class | ns3::olsr::LinkType : uint8_t { ns3::olsr::UNSPEC_LINK = 0 , ns3::olsr::ASYM_LINK = 1 , ns3::olsr::SYM_LINK = 2 , ns3::olsr::LOST_LINK = 3 } |
OLSR link types. More... | |
enum class | ns3::olsr::NeighborType : uint8_t { ns3::olsr::NOT_NEIGH = 0 , ns3::olsr::SYM_NEIGH = 1 , ns3::olsr::MPR_NEIGH = 2 } |
OLSR neighbor types. More... | |
Functions | |
void | ns3::olsr::anonymous_namespace{olsr-routing-protocol.cc}::CoverTwoHopNeighbors (Ipv4Address neighborMainAddr, TwoHopNeighborSet &N2) |
Remove all covered 2-hop neighbors from N2 set. More... | |
std::ostream & | ns3::olsr::operator<< (std::ostream &os, LinkType linkType) |
Stream insertion operator for OLSR link type. More... | |
std::ostream & | ns3::olsr::operator<< (std::ostream &os, NeighborType neighborType) |
Stream insertion operator for OLSR link type. More... | |
#define DELAY | ( | time | ) |
Gets the delay between a given time and the current time.
If given time is previous to the current one, then this macro returns a number close to 0. This is used for scheduling events at a certain moment.
Definition at line 66 of file olsr-routing-protocol.cc.
#define JITTER (Seconds(m_uniformRandomVariable->GetValue(0, OLSR_MAXJITTER))) |
Random number between [0-OLSR_MAXJITTER] used to jitter OLSR packet transmission.
Definition at line 97 of file olsr-routing-protocol.cc.
#define NS_LOG_APPEND_CONTEXT |
Implementation of OLSR agent and related classes.
This is the main file of this software because OLSR's behaviour is implemented here.
Definition at line 29 of file olsr-routing-protocol.cc.
#define OLSR_DUP_HOLD_TIME Seconds(30) |
Dup holding time.
Definition at line 84 of file olsr-routing-protocol.cc.
#define OLSR_HNA_HOLD_TIME Time(3 * m_hnaInterval) |
HNA holding time.
Definition at line 88 of file olsr-routing-protocol.cc.
#define OLSR_MAX_ADDRS 64 |
Maximum number of addresses advertised on a message.
Definition at line 106 of file olsr-routing-protocol.cc.
#define OLSR_MAX_HELLOS 12 |
Maximum number of hellos per message (4 possible link types * 3 possible nb types).
Definition at line 103 of file olsr-routing-protocol.cc.
#define OLSR_MAX_MSGS 64 |
Maximum number of messages per packet.
Definition at line 100 of file olsr-routing-protocol.cc.
#define OLSR_MAX_SEQ_NUM 65535 |
Maximum allowed sequence number.
Definition at line 95 of file olsr-routing-protocol.cc.
#define OLSR_MAXJITTER (m_helloInterval.GetSeconds() / 4) |
Maximum allowed jitter.
Definition at line 93 of file olsr-routing-protocol.cc.
#define OLSR_MID_HOLD_TIME Time(3 * m_midInterval) |
MID holding time.
Definition at line 86 of file olsr-routing-protocol.cc.
#define OLSR_NEIGHB_HOLD_TIME Time(3 * OLSR_REFRESH_INTERVAL) |
Neighbor holding time.
Definition at line 80 of file olsr-routing-protocol.cc.
#define OLSR_REFRESH_INTERVAL m_helloInterval |
Period at which a node must cite every link and every neighbor.
We only use this value in order to define OLSR_NEIGHB_HOLD_TIME.
Definition at line 75 of file olsr-routing-protocol.cc.
#define OLSR_TOP_HOLD_TIME Time(3 * m_tcInterval) |
Top holding time.
Definition at line 82 of file olsr-routing-protocol.cc.