Public Member Functions | Static Public Member Functions | Protected Member Functions

ns3::Ipv6StaticRouting Class Reference
[Ipv6StaticRouting]

Static routing protocol for IP version 6 stack. More...

#include <ipv6-static-routing.h>

Inheritance diagram for ns3::Ipv6StaticRouting:
Inheritance graph
[legend]
Collaboration diagram for ns3::Ipv6StaticRouting:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 Ipv6StaticRouting ()
 Constructor.
virtual ~Ipv6StaticRouting ()
 Destructor.
void AddHostRouteTo (Ipv6Address dest, Ipv6Address nextHop, uint32_t interface, Ipv6Address prefixToUse=Ipv6Address("::"), uint32_t metric=0)
 Add route to host.
void AddHostRouteTo (Ipv6Address dest, uint32_t interface, uint32_t metric=0)
 Add route to host.
void AddNetworkRouteTo (Ipv6Address network, Ipv6Prefix networkPrefix, Ipv6Address nextHop, uint32_t interface, uint32_t metric=0)
 Add route to network.
void AddNetworkRouteTo (Ipv6Address network, Ipv6Prefix networkPrefix, Ipv6Address nextHop, uint32_t interface, Ipv6Address prefixToUse, uint32_t metric=0)
 Add route to network.
void AddNetworkRouteTo (Ipv6Address network, Ipv6Prefix networkPrefix, uint32_t interface, uint32_t metric=0)
 Add route to network.
void SetDefaultRoute (Ipv6Address nextHop, uint32_t interface, Ipv6Address prefixToUse=Ipv6Address("::"), uint32_t metric=0)
 Set the default route.
uint32_t GetNRoutes ()
 Get the number or entries in the routing table.
Ipv6RoutingTableEntry GetDefaultRoute ()
 Get the default route.
Ipv6RoutingTableEntry GetRoute (uint32_t i)
 Get a specified route.
uint32_t GetMetric (uint32_t index)
 Get a metric for route from the static unicast routing table.
void RemoveRoute (uint32_t i)
 Remove a route from the routing table.
void RemoveRoute (Ipv6Address network, Ipv6Prefix prefix, uint32_t ifIndex, Ipv6Address prefixToUse)
 Remove a route from the routing table.
void AddMulticastRoute (Ipv6Address origin, Ipv6Address group, uint32_t inputInterface, std::vector< uint32_t > outputInterfaces)
 Add a multicast route for a given multicast source and group.
void SetDefaultMulticastRoute (uint32_t outputInterface)
 Set the default multicast route.
uint32_t GetNMulticastRoutes () const
 Get the number of entries in the multicast routing table.
Ipv6MulticastRoutingTableEntry GetMulticastRoute (uint32_t i) const
 Get the specified multicast route.
bool RemoveMulticastRoute (Ipv6Address origin, Ipv6Address group, uint32_t inputInterface)
 Remove a static multicast route.
void RemoveMulticastRoute (uint32_t i)
 Remove a multicast route.
bool HasNetworkDest (Ipv6Address dest, uint32_t interfaceIndex)
 If the destination is already present in network destination list.
virtual Ptr< Ipv6RouteRouteOutput (Ptr< Packet > p, const Ipv6Header &header, Ptr< NetDevice > oif, Socket::SocketErrno &sockerr)
 Query routing cache for an existing route, for an outbound packet.
virtual bool RouteInput (Ptr< const Packet > p, const Ipv6Header &header, Ptr< const NetDevice > idev, UnicastForwardCallback ucb, MulticastForwardCallback mcb, LocalDeliverCallback lcb, ErrorCallback ecb)
 Route an input packet (to be forwarded or locally delivered).
virtual void NotifyInterfaceUp (uint32_t interface)
 Notify when specified interface goes UP.
virtual void NotifyInterfaceDown (uint32_t interface)
 Notify when specified interface goes DOWN.
virtual void NotifyAddAddress (uint32_t interface, Ipv6InterfaceAddress address)
 Notify when specified interface add an address.
virtual void NotifyRemoveAddress (uint32_t interface, Ipv6InterfaceAddress address)
 Notify when specified interface add an address.
virtual void NotifyAddRoute (Ipv6Address dst, Ipv6Prefix mask, Ipv6Address nextHop, uint32_t interface, Ipv6Address prefixToUse=Ipv6Address::GetZero())
 Notify a new route.
virtual void NotifyRemoveRoute (Ipv6Address dst, Ipv6Prefix mask, Ipv6Address nextHop, uint32_t interface, Ipv6Address prefixToUse=Ipv6Address::GetZero())
 Notify route removing.
virtual void SetIpv6 (Ptr< Ipv6 > ipv6)
 Typically, invoked directly or indirectly from ns3::Ipv6::SetRoutingProtocol.

Static Public Member Functions

static TypeId GetTypeId ()
 The interface Id associated with this class.

Protected Member Functions

void DoDispose ()
 Dispose this object.

Detailed Description

Static routing protocol for IP version 6 stack.

See also:
Ipv6RoutingProtocol
Ipv6ListRouting

Member Function Documentation

void ns3::Ipv6StaticRouting::AddHostRouteTo ( Ipv6Address  dest,
Ipv6Address  nextHop,
uint32_t  interface,
Ipv6Address  prefixToUse = Ipv6Address("::"),
uint32_t  metric = 0 
)

Add route to host.

Parameters:
dest destination address
nextHop next hop address to route the packet
interface interface index
prefixToUse prefix that should be used for source address for this destination
metric metric of route in case of multiple routes to same destination
void ns3::Ipv6StaticRouting::AddHostRouteTo ( Ipv6Address  dest,
uint32_t  interface,
uint32_t  metric = 0 
)

Add route to host.

Parameters:
dest destination address.
interface interface index
metric metric of route in case of multiple routes to same destination
void ns3::Ipv6StaticRouting::AddMulticastRoute ( Ipv6Address  origin,
Ipv6Address  group,
uint32_t  inputInterface,
std::vector< uint32_t >  outputInterfaces 
)

Add a multicast route for a given multicast source and group.

Parameters:
origin IPv6 address of the source
group the multicast group address.
inputInterface the interface index
outputInterfaces the list of output interface indices over which the packet should be sent (excluding the inputInterface).
void ns3::Ipv6StaticRouting::AddNetworkRouteTo ( Ipv6Address  network,
Ipv6Prefix  networkPrefix,
Ipv6Address  nextHop,
uint32_t  interface,
uint32_t  metric = 0 
)

Add route to network.

Parameters:
network network address
networkPrefix network prefix*
nextHop next hop address to route the packet
interface interface index
metric metric of route in case of multiple routes to same destination
void ns3::Ipv6StaticRouting::AddNetworkRouteTo ( Ipv6Address  network,
Ipv6Prefix  networkPrefix,
Ipv6Address  nextHop,
uint32_t  interface,
Ipv6Address  prefixToUse,
uint32_t  metric = 0 
)

Add route to network.

Parameters:
network network address
networkPrefix network prefix*
nextHop next hop address to route the packet
interface interface index
prefixToUse prefix that should be used for source address for this destination
metric metric of route in case of multiple routes to same destination
void ns3::Ipv6StaticRouting::AddNetworkRouteTo ( Ipv6Address  network,
Ipv6Prefix  networkPrefix,
uint32_t  interface,
uint32_t  metric = 0 
)

Add route to network.

Parameters:
network network address
networkPrefix network prefix
interface interface index
metric metric of route in case of multiple routes to same destination
Ipv6RoutingTableEntry ns3::Ipv6StaticRouting::GetDefaultRoute (  ) 

Get the default route.

If multiple default routes exist, the one with lowest metric is returned.

Returns:
default Ipv6Route
uint32_t ns3::Ipv6StaticRouting::GetMetric ( uint32_t  index  ) 

Get a metric for route from the static unicast routing table.

Parameters:
index The index (into the routing table) of the route to retrieve.
Returns:
If route is set, the metric is returned. If not, an infinity metric (0xffffffff) is returned
Ipv6MulticastRoutingTableEntry ns3::Ipv6StaticRouting::GetMulticastRoute ( uint32_t  i  )  const

Get the specified multicast route.

Parameters:
i index
Returns:
the route whose index is i
uint32_t ns3::Ipv6StaticRouting::GetNMulticastRoutes (  )  const

Get the number of entries in the multicast routing table.

Returns:
number of entries
uint32_t ns3::Ipv6StaticRouting::GetNRoutes (  ) 

Get the number or entries in the routing table.

Returns:
number of entries
Ipv6RoutingTableEntry ns3::Ipv6StaticRouting::GetRoute ( uint32_t  i  ) 

Get a specified route.

Parameters:
i index
Returns:
the route whose index is i
static TypeId ns3::Ipv6StaticRouting::GetTypeId ( void   )  [static]

The interface Id associated with this class.

This method returns the TypeId associated to ns3::Ipv6StaticRouting.

Returns:
type identifier

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Phy/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Phy/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/LinkManager/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/LinkManager/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/SSManager/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/SSManager/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/Classifier/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/Classifier/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/NoiseModel/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/NoiseModel/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/PropagationModel/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/PropagationModel/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Mac/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Mac/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Phy/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Phy/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Transducer/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Transducer/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/LinkManager/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/LinkManager/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/SSManager/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/SSManager/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/Classifier/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/Classifier/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BandwidthManager/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BandwidthManager/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BurstProfileManager/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BurstProfileManager/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/NoiseModel/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/NoiseModel/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/PropagationModel/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/PropagationModel/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/ConnectionManager/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/ConnectionManager/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/NoiseModel/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/NoiseModel/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/PropagationModel/$ns3::Ipv6RoutingProtocol/$ns3::Ipv6StaticRouting
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/PropagationModel/$ns3::Ipv6StaticRouting

No Attributes defined for this type.
No TraceSources defined for this type.

Reimplemented from ns3::Ipv6RoutingProtocol.

bool ns3::Ipv6StaticRouting::HasNetworkDest ( Ipv6Address  dest,
uint32_t  interfaceIndex 
)

If the destination is already present in network destination list.

Parameters:
dest destination address
interfaceIndex interface index
Returns:
true if dest is already in list, false otherwise
virtual void ns3::Ipv6StaticRouting::NotifyAddAddress ( uint32_t  interface,
Ipv6InterfaceAddress  address 
) [virtual]

Notify when specified interface add an address.

Protocols are expected to implement this method to be notified whenever a new address is added to an interface. Typically used to add a 'network route' on an interface. Can be invoked on an up or down interface.

Parameters:
interface the index of the interface we are being notified about
address a new address being added to an interface

Implements ns3::Ipv6RoutingProtocol.

virtual void ns3::Ipv6StaticRouting::NotifyAddRoute ( Ipv6Address  dst,
Ipv6Prefix  mask,
Ipv6Address  nextHop,
uint32_t  interface,
Ipv6Address  prefixToUse = Ipv6Address::GetZero() 
) [virtual]

Notify a new route.

Typically this is used to add another route from IPv6 stack (i.e. ICMPv6 redirect case, ...).

Parameters:
dst destination address
mask destination mask
nextHop nextHop for this destination
interface output interface
prefixToUse prefix to use as source with this route

Implements ns3::Ipv6RoutingProtocol.

virtual void ns3::Ipv6StaticRouting::NotifyInterfaceDown ( uint32_t  interface  )  [virtual]

Notify when specified interface goes DOWN.

Protocols are expected to implement this method to be notified of the state change of an interface in a node.

Parameters:
interface the index of the interface we are being notified about

Implements ns3::Ipv6RoutingProtocol.

virtual void ns3::Ipv6StaticRouting::NotifyInterfaceUp ( uint32_t  interface  )  [virtual]

Notify when specified interface goes UP.

Protocols are expected to implement this method to be notified of the state change of an interface in a node.

Parameters:
interface the index of the interface we are being notified about

Implements ns3::Ipv6RoutingProtocol.

virtual void ns3::Ipv6StaticRouting::NotifyRemoveAddress ( uint32_t  interface,
Ipv6InterfaceAddress  address 
) [virtual]

Notify when specified interface add an address.

Protocols are expected to implement this method to be notified whenever a new address is removed from an interface. Typically used to remove the 'network route' of an interface. Can be invoked on an up or down interface.

Parameters:
interface the index of the interface we are being notified about
address a new address being added to an interface

Implements ns3::Ipv6RoutingProtocol.

virtual void ns3::Ipv6StaticRouting::NotifyRemoveRoute ( Ipv6Address  dst,
Ipv6Prefix  mask,
Ipv6Address  nextHop,
uint32_t  interface,
Ipv6Address  prefixToUse = Ipv6Address::GetZero() 
) [virtual]

Notify route removing.

Parameters:
dst destination address
mask destination mask
nextHop nextHop for this destination
interface output interface
prefixToUse prefix to use as source with this route

Implements ns3::Ipv6RoutingProtocol.

void ns3::Ipv6StaticRouting::RemoveMulticastRoute ( uint32_t  i  ) 

Remove a multicast route.

Parameters:
i index of route to remove
bool ns3::Ipv6StaticRouting::RemoveMulticastRoute ( Ipv6Address  origin,
Ipv6Address  group,
uint32_t  inputInterface 
)

Remove a static multicast route.

Parameters:
origin IPv6 address of the source
group the multicast group address.
inputInterface the input interface index
void ns3::Ipv6StaticRouting::RemoveRoute ( uint32_t  i  ) 

Remove a route from the routing table.

Parameters:
i index
void ns3::Ipv6StaticRouting::RemoveRoute ( Ipv6Address  network,
Ipv6Prefix  prefix,
uint32_t  ifIndex,
Ipv6Address  prefixToUse 
)

Remove a route from the routing table.

Parameters:
network IPv6 network
prefix IPv6 prefix
ifIndex interface index
prefixToUse IPv6 prefix to use with this route (multihoming)
virtual bool ns3::Ipv6StaticRouting::RouteInput ( Ptr< const Packet p,
const Ipv6Header header,
Ptr< const NetDevice idev,
UnicastForwardCallback  ucb,
MulticastForwardCallback  mcb,
LocalDeliverCallback  lcb,
ErrorCallback  ecb 
) [virtual]

Route an input packet (to be forwarded or locally delivered).

This lookup is used in the forwarding process. The packet is handed over to the Ipv6RoutingProtocol, and will get forwarded onward by one of the callbacks. The Linux equivalent is ip_route_input (). There are four valid outcomes, and a matching callbacks to handle each.

Parameters:
p received packet
header input parameter used to form a search key for a route
idev Pointer to ingress network device
ucb Callback for the case in which the packet is to be forwarded as unicast
mcb Callback for the case in which the packet is to be forwarded as multicast
lcb Callback for the case in which the packet is to be locally delivered
ecb Callback to call if there is an error in forwarding
Returns:
true if the Ipv6RoutingProtocol takes responsibility for forwarding or delivering the packet, false otherwise

Implements ns3::Ipv6RoutingProtocol.

virtual Ptr<Ipv6Route> ns3::Ipv6StaticRouting::RouteOutput ( Ptr< Packet p,
const Ipv6Header header,
Ptr< NetDevice oif,
Socket::SocketErrno &  sockerr 
) [virtual]

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 ()

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 device. 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::Ipv6RoutingProtocol.

void ns3::Ipv6StaticRouting::SetDefaultMulticastRoute ( uint32_t  outputInterface  ) 

Set the default multicast route.

Parameters:
outputInterface default output interface
void ns3::Ipv6StaticRouting::SetDefaultRoute ( Ipv6Address  nextHop,
uint32_t  interface,
Ipv6Address  prefixToUse = Ipv6Address("::"),
uint32_t  metric = 0 
)

Set the default route.

Parameters:
nextHop next hop address to route the packet
interface interface index
prefixToUse prefix to use (i.e for multihoming)
metric metric of route in case of multiple routes to same destination
virtual void ns3::Ipv6StaticRouting::SetIpv6 ( Ptr< Ipv6 ipv6  )  [virtual]

Typically, invoked directly or indirectly from ns3::Ipv6::SetRoutingProtocol.

Parameters:
ipv6 the ipv6 object this routing protocol is being associated with

Implements ns3::Ipv6RoutingProtocol.


The documentation for this class was generated from the following files: