19 #ifndef IPV6_LIST_ROUTING_H
20 #define IPV6_LIST_ROUTING_H
23 #include "ns3/ipv6-routing-protocol.h"
virtual void NotifyRemoveAddress(uint32_t interface, Ipv6InterfaceAddress address)
Notify when specified interface add an address.
smart pointer class similar to boost::intrusive_ptr
virtual uint32_t GetNRoutingProtocols(void) const
Get the number of routing protocols.
virtual Ptr< Ipv6Route > RouteOutput(Ptr< Packet > p, const Ipv6Header &header, Ptr< NetDevice > oif, Socket::SocketErrno &sockerr)
Query routing cache for an existing route, for an outbound packet.
IPv6 address associated with an interface.
SocketErrno
Enumeration of the possible errors returned by a socket.
virtual void AddRoutingProtocol(Ptr< Ipv6RoutingProtocol > routingProtocol, int16_t priority)
Register a new routing protocol to be used in this IPv4 stack.
std::list< Ipv6RoutingProtocolEntry > Ipv6RoutingProtocolList
Container of the IPv6 Routing Protocols.
virtual void NotifyAddRoute(Ipv6Address dst, Ipv6Prefix mask, Ipv6Address nextHop, uint32_t interface, Ipv6Address prefixToUse=Ipv6Address::GetZero())
Notify a new route.
Ptr< Ipv6 > m_ipv6
Ipv6 this protocol is associated with.
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)
static bool Compare(const Ipv6RoutingProtocolEntry &a, const Ipv6RoutingProtocolEntry &b)
Compare two routing protocols.
virtual void NotifyRemoveRoute(Ipv6Address dst, Ipv6Prefix mask, Ipv6Address nextHop, uint32_t interface, Ipv6Address prefixToUse=Ipv6Address::GetZero())
Notify route removing.
static Ipv6Address GetZero()
Get the 0 (::) Ipv6Address.
virtual void NotifyInterfaceUp(uint32_t interface)
Notify when specified interface goes UP.
virtual void SetIpv6(Ptr< Ipv6 > ipv6)
Typically, invoked directly or indirectly from ns3::Ipv6::SetRoutingProtocol.
Ipv6ListRouting()
Constructor.
std::pair< int16_t, Ptr< Ipv6RoutingProtocol > > Ipv6RoutingProtocolEntry
Container identifying an IPv6 Routing Protocol entry in the list.
virtual void PrintRoutingTable(Ptr< OutputStreamWrapper > stream) const
Print the Routing Table entries.
virtual ~Ipv6ListRouting()
Destructor.
Describes an IPv6 address.
static TypeId GetTypeId(void)
Get the type ID of this class.
virtual void NotifyInterfaceDown(uint32_t interface)
Notify when specified interface goes DOWN.
Describes an IPv6 prefix.
Doxygen introspection did not find any typical Config paths.
virtual void DoDispose(void)
Dispose this object.
Abstract base class for Ipv6 routing protocols.
a unique identifier for an interface.
virtual Ptr< Ipv6RoutingProtocol > GetRoutingProtocol(uint32_t index, int16_t &priority) const
Get pointer to routing protocol stored at index,.
Ipv6RoutingProtocolList m_routingProtocols
List of routing protocols.
virtual void NotifyAddAddress(uint32_t interface, Ipv6InterfaceAddress address)
Notify when specified interface add an address.