|
| Ipv4NixVectorRouting () |
|
| ~Ipv4NixVectorRouting () |
|
void | FlushGlobalNixRoutingCache (void) const |
| Called when run-time link topology change occurs which iterates through the node list and flushes any nix vector caches. More...
|
|
void | SetNode (Ptr< Node > node) |
| Set the Node pointer of the node for which this routing protocol is to be placed. More...
|
|
| Object () |
| Constructor. More...
|
|
virtual | ~Object () |
| Destructor. More...
|
|
void | AggregateObject (Ptr< Object > other) |
| Aggregate two Objects together. More...
|
|
void | Dispose (void) |
| Dispose of this Object. More...
|
|
AggregateIterator | GetAggregateIterator (void) const |
| Get an iterator to the Objects aggregated to this one. More...
|
|
virtual TypeId | GetInstanceTypeId (void) const |
| Get the most derived TypeId for this Object. More...
|
|
template<typename T > |
Ptr< T > | GetObject (void) const |
| Get a pointer to the requested aggregated Object. More...
|
|
template<typename T > |
Ptr< T > | GetObject (TypeId tid) const |
| Get a pointer to the requested aggregated Object by TypeId. More...
|
|
void | Initialize (void) |
| Invoke DoInitialize on all Objects aggregated to this one. More...
|
|
bool | IsInitialized (void) const |
| Check if the object has been initialized. More...
|
|
| SimpleRefCount () |
| Default constructor. More...
|
|
| SimpleRefCount (const SimpleRefCount &o) |
| Copy constructor. More...
|
|
uint32_t | GetReferenceCount (void) const |
| Get the reference count of the object. More...
|
|
SimpleRefCount & | operator= (const SimpleRefCount &o) |
| Assignment operator. More...
|
|
void | Ref (void) const |
| Increment the reference count. More...
|
|
void | Unref (void) const |
| Decrement the reference count. More...
|
|
virtual | ~ObjectBase () |
| Virtual destructor. More...
|
|
void | GetAttribute (std::string name, AttributeValue &value) const |
| Get the value of an attribute, raising fatal errors if unsuccessful. More...
|
|
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
| Get the value of an attribute without raising erros. More...
|
|
void | SetAttribute (std::string name, const AttributeValue &value) |
| Set a single attribute, raising fatal errors if unsuccessful. More...
|
|
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
| Set a single attribute without raising errors. More...
|
|
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
| Connect a TraceSource to a Callback with a context. More...
|
|
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
| Connect a TraceSource to a Callback without a context. More...
|
|
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
| Disconnect from a TraceSource a Callback previously connected with a context. More...
|
|
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
| Disconnect from a TraceSource a Callback previously connected without a context. More...
|
|
|
bool | BFS (uint32_t numberOfNodes, Ptr< Node > source, Ptr< Node > dest, std::vector< Ptr< Node > > &parentVector, Ptr< NetDevice > oif) |
| Breadth first search algorithm. More...
|
|
bool | BuildNixVector (const std::vector< Ptr< Node > > &parentVector, uint32_t source, uint32_t dest, Ptr< NixVector > nixVector) |
| Recurses the parent vector, created by BFS and actually builds the nixvector. More...
|
|
bool | BuildNixVectorLocal (Ptr< NixVector > nixVector) |
| Special variation of BuildNixVector for when a node is sending to itself. More...
|
|
void | CheckCacheStateAndFlush (void) const |
| Flushes routing caches if required. More...
|
|
void | DoDispose (void) |
| Destructor implementation. More...
|
|
uint32_t | FindNetDeviceForNixIndex (uint32_t nodeIndex, Ipv4Address &gatewayIp) |
| Nix index is with respect to the neighbors. More...
|
|
uint32_t | FindTotalNeighbors (void) |
| Simple iterates through the nodes net-devices and determines how many neighbors it has. More...
|
|
void | FlushIpv4RouteCache (void) const |
| Flushes the cache which stores the Ipv4 route based on the destination IP. More...
|
|
void | FlushNixCache (void) const |
| Flushes the cache which stores nix-vector based on destination IP. More...
|
|
void | GetAdjacentNetDevices (Ptr< NetDevice > netDevice, Ptr< Channel > channel, NetDeviceContainer &netDeviceContainer) |
| Given a net-device returns all the adjacent net-devices, essentially getting the neighbors on that channel. More...
|
|
Ptr< Ipv4Route > | GetIpv4RouteInCache (Ipv4Address address) |
| Checks the cache based on dest IP for the Ipv4Route. More...
|
|
Ptr< NixVector > | GetNixVector (Ptr< Node > source, Ipv4Address dest, Ptr< NetDevice > oif) |
| Takes in the source node and dest IP and calls GetNodeByIp, BFS, accounting for any output interface specified, and finally BuildNixVector to return the built nix-vector. More...
|
|
Ptr< NixVector > | GetNixVectorInCache (Ipv4Address address) |
| Checks the cache based on dest IP for the nix-vector. More...
|
|
Ptr< Node > | GetNodeByIp (Ipv4Address dest) |
| Iterates through the node list and finds the one corresponding to the given Ipv4Address. More...
|
|
Ptr< BridgeNetDevice > | NetDeviceIsBridged (Ptr< NetDevice > nd) const |
| Determine if the NetDevice is bridged. More...
|
|
virtual void | NotifyAddAddress (uint32_t interface, Ipv4InterfaceAddress address) |
|
virtual void | NotifyInterfaceDown (uint32_t interface) |
|
virtual void | NotifyInterfaceUp (uint32_t interface) |
|
virtual void | NotifyRemoveAddress (uint32_t interface, Ipv4InterfaceAddress address) |
|
virtual void | PrintRoutingTable (Ptr< OutputStreamWrapper > stream, Time::Unit unit=Time::S) const |
| Print the Routing Table entries. More...
|
|
void | ResetTotalNeighbors (void) |
| Upon a run-time topology change caches are flushed and the total number of neighbors is reset to zero. More...
|
|
virtual bool | RouteInput (Ptr< const Packet > p, const Ipv4Header &header, Ptr< const NetDevice > idev, UnicastForwardCallback ucb, MulticastForwardCallback mcb, LocalDeliverCallback lcb, ErrorCallback ecb) |
| Route an input packet (to be forwarded or locally delivered) More...
|
|
virtual Ptr< Ipv4Route > | RouteOutput (Ptr< Packet > p, const Ipv4Header &header, Ptr< NetDevice > oif, Socket::SocketErrno &sockerr) |
| Query routing cache for an existing route, for an outbound packet. More...
|
|
virtual void | SetIpv4 (Ptr< Ipv4 > ipv4) |
|
|
typedef Callback< void, Ptr< const Packet >, const Ipv4Header &, Socket::SocketErrno > | ErrorCallback |
| Callback for routing errors (e.g., no route found) More...
|
|
typedef Callback< void, Ptr< const Packet >, const Ipv4Header &, uint32_t > | LocalDeliverCallback |
| Callback for packets to be locally delivered. More...
|
|
typedef Callback< void, Ptr< Ipv4MulticastRoute >, Ptr< const Packet >, const Ipv4Header & > | MulticastForwardCallback |
| Callback for multicast packets to be forwarded. More...
|
|
typedef Callback< void, Ptr< Ipv4Route >, Ptr< const Packet >, const Ipv4Header & > | UnicastForwardCallback |
| Callback for unicast packets to be forwarded. More...
|
|
| Object (const Object &o) |
| Copy an Object. More...
|
|
virtual void | DoInitialize (void) |
| Initialize() implementation. More...
|
|
virtual void | NotifyNewAggregate (void) |
| Notify all Objects aggregated to this one of a new Object being aggregated. More...
|
|
void | ConstructSelf (const AttributeConstructionList &attributes) |
| Complete construction of ObjectBase; invoked by derived classes. More...
|
|
virtual void | NotifyConstructionCompleted (void) |
| Notifier called once the ObjectBase is fully constructed. More...
|
|
static TypeId | GetObjectIid (void) |
| Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More...
|
|
Nix-vector routing protocol.
ns3::Ipv4NixVectorRouting is accessible through the following paths with Config::Set and Config::Connect:
-
"/NodeList/[i]/$ns3::Ipv4NixVectorRouting"
No Attributes are defined for this type.
No TraceSources are defined for this type.
Size of this type is 104 bytes (on a 64-bit architecture).
Definition at line 60 of file ipv4-nix-vector-routing.h.
void ns3::Ipv4NixVectorRouting::DoDispose |
( |
void |
| ) |
|
|
privatevirtual |
Destructor implementation.
This method is called by Dispose() or by the Object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overridden version of this method and chain up to their parent's implementation once they are done. i.e, for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose() method.
It is safe to call GetObject() from within this method.
Reimplemented from ns3::Object.
Query routing cache for an existing route, for an outbound packet.
This lookup is used by transport protocols. It does not cause any packet to be forwarded, and is synchronous. Can be used for multicast or unicast. The Linux equivalent is ip_route_output()
The header input parameter may have an uninitialized value for the source address, but the destination address should always be properly set by the caller.
- Parameters
-
p | packet to be routed. Note that this method may modify the packet. Callers may also pass in a null pointer. |
header | input parameter (used to form key to search for the route) |
oif | Output interface Netdevice. May be zero, or may be bound via socket options to a particular output interface. |
sockerr | Output parameter; socket errno |
- Returns
- a code that indicates what happened in the lookup
Implements ns3::Ipv4RoutingProtocol.