Doxygenize.
This commit is contained in:
@@ -82,7 +82,7 @@ def register_types(module):
|
||||
## ipv6-l3-protocol.h: ns3::Ipv6L3Protocol [class]
|
||||
module.add_class('Ipv6L3Protocol', parent=root_module['ns3::Ipv6'])
|
||||
## ipv6-l3-protocol.h: ns3::Ipv6L3Protocol::DropReason [enumeration]
|
||||
module.add_enum('DropReason', ['DROP_TTL_EXPIRED', 'DROP_NO_ROUTE', 'DROP_BAD_CHECKSUM', 'DROP_INTERFACE_DOWN', 'DROP_ROUTE_ERROR'], outer_class=root_module['ns3::Ipv6L3Protocol'])
|
||||
module.add_enum('DropReason', ['DROP_TTL_EXPIRED', 'DROP_NO_ROUTE', 'DROP_INTERFACE_DOWN', 'DROP_ROUTE_ERROR'], outer_class=root_module['ns3::Ipv6L3Protocol'])
|
||||
## ipv6-l4-protocol.h: ns3::Ipv6L4Protocol [class]
|
||||
module.add_class('Ipv6L4Protocol', parent=root_module['ns3::Object'])
|
||||
## ipv6-l4-protocol.h: ns3::Ipv6L4Protocol::RxStatus_e [enumeration]
|
||||
|
||||
@@ -81,7 +81,7 @@ class RadvdInterface : public RefCountBase
|
||||
|
||||
/**
|
||||
* \brief Set send advert flag.
|
||||
* \return sendAdvert value
|
||||
* \param sendAdvert value
|
||||
*/
|
||||
void SetSendAdvert (bool sendAdvert);
|
||||
|
||||
|
||||
@@ -574,7 +574,7 @@ namespace ns3 {
|
||||
* This routine is based on the GNU Scientific Library function gsl_fcmp.
|
||||
*
|
||||
* \param a The first of double precision floating point numbers to compare
|
||||
* \param a The second of double precision floating point numbers to compare
|
||||
* \param b The second of double precision floating point numbers to compare
|
||||
* \param epsilon The second of double precision floating point numberss to compare
|
||||
* \returns Returns true if the doubles are equal to a precision defined by epsilon
|
||||
*/
|
||||
@@ -591,7 +591,6 @@ public:
|
||||
|
||||
/**
|
||||
* \brief Run this test case.
|
||||
* \param verbose Turn on any output the test case may provide
|
||||
* \returns Boolean sense of "an error has occurred."
|
||||
*/
|
||||
bool Run (void);
|
||||
@@ -748,6 +747,10 @@ private:
|
||||
class TestSuite
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* \enum TestType
|
||||
* \brief Type of test.
|
||||
*/
|
||||
enum TestType {
|
||||
BVT = 1, /**< This test suite implements a Build Verification Test */
|
||||
UNIT, /**< This test suite implements a Unit Test */
|
||||
@@ -772,7 +775,6 @@ public:
|
||||
/**
|
||||
* \brief Run this test suite.
|
||||
*
|
||||
* \param verbose Turn on any output the test case may provide
|
||||
* \returns Boolean sense of "an error has occurred."
|
||||
*/
|
||||
bool Run (void);
|
||||
|
||||
@@ -45,7 +45,7 @@ public:
|
||||
*
|
||||
* This method will be called by ns3::InternetStackHelper::Install
|
||||
*/
|
||||
virtual Ptr<Ipv4RoutingProtocol> Create (Ptr<Node>) const;
|
||||
virtual Ptr<Ipv4RoutingProtocol> Create (Ptr<Node> node) const;
|
||||
|
||||
private:
|
||||
ObjectFactory m_agentFactory;
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace ns3
|
||||
|
||||
/**
|
||||
* \class Ipv6InterfaceContainer
|
||||
* \brief keep track of a set of IPv6 interfaces.
|
||||
* \brief Keep track of a set of IPv6 interfaces.
|
||||
*/
|
||||
class Ipv6InterfaceContainer
|
||||
{
|
||||
|
||||
@@ -29,7 +29,7 @@ class Ipv6RoutingProtocol;
|
||||
class Node;
|
||||
|
||||
/**
|
||||
* \brief a factory to create ns3::Ipv6RoutingProtocol objects
|
||||
* \brief A factory to create ns3::Ipv6RoutingProtocol objects
|
||||
*
|
||||
* For each new routing protocol created as a subclass of
|
||||
* ns3::Ipv6RoutingProtocol, you need to create a subclass of
|
||||
|
||||
@@ -41,6 +41,9 @@ namespace ns3 {
|
||||
class Ipv6StaticRoutingHelper : public Ipv6RoutingHelper
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* \brief Constructor.
|
||||
*/
|
||||
Ipv6StaticRoutingHelper ();
|
||||
|
||||
/**
|
||||
@@ -51,6 +54,11 @@ public:
|
||||
*/
|
||||
virtual Ptr<Ipv6RoutingProtocol> Create (Ptr<Node> node) const;
|
||||
|
||||
/**
|
||||
* \brief Get Ipv6StaticRouting pointer from IPv6 stack.
|
||||
* \param ipv6 Ipv6 pointer
|
||||
* \return Ipv6StaticRouting pointer or 0 if not exist
|
||||
*/
|
||||
Ptr<Ipv6StaticRouting> GetStaticRouting (Ptr<Ipv6> ipv6) const;
|
||||
|
||||
void AddMulticastRoute (Ptr<Node> n, Ipv6Address source, Ipv6Address group,
|
||||
|
||||
@@ -667,7 +667,7 @@ void Icmpv6RS::SetReserved (uint32_t reserved)
|
||||
m_reserved = reserved;
|
||||
}
|
||||
|
||||
void Icmpv6RS::Print (std::ostream& os)
|
||||
void Icmpv6RS::Print (std::ostream& os) const
|
||||
{
|
||||
os << "( type = " << (uint32_t)GetType () << " (RS) code = " << (uint32_t)GetCode () << " checksum = " << (uint32_t)GetChecksum () << ")";
|
||||
}
|
||||
@@ -772,7 +772,7 @@ void Icmpv6Redirection::SetDestination (Ipv6Address destination)
|
||||
m_destination = destination;
|
||||
}
|
||||
|
||||
void Icmpv6Redirection::Print (std::ostream& os)
|
||||
void Icmpv6Redirection::Print (std::ostream& os) const
|
||||
{
|
||||
os << "( type = " << (uint32_t)GetType () << " (Redirection) code = " << (uint32_t)GetCode () << " checksum = " << (uint32_t)GetChecksum () << " target = " << m_target << " destination = " << m_destination << ")";
|
||||
}
|
||||
@@ -971,7 +971,7 @@ void Icmpv6DestinationUnreachable::SetPacket (Ptr<Packet> p)
|
||||
m_packet = p;
|
||||
}
|
||||
|
||||
void Icmpv6DestinationUnreachable::Print (std::ostream& os)
|
||||
void Icmpv6DestinationUnreachable::Print (std::ostream& os) const
|
||||
{
|
||||
os << "( type = " << (uint32_t)GetType () << " (Destination Unreachable) code = " << (uint32_t)GetCode () << " checksum = " << (uint32_t)GetChecksum () << ")";
|
||||
}
|
||||
@@ -1066,7 +1066,7 @@ void Icmpv6TooBig::SetMtu (uint32_t mtu)
|
||||
m_mtu = mtu;
|
||||
}
|
||||
|
||||
void Icmpv6TooBig::Print (std::ostream& os)
|
||||
void Icmpv6TooBig::Print (std::ostream& os) const
|
||||
{
|
||||
os << "( type = " << (uint32_t)GetType () << " (Too Big) code = " << (uint32_t)GetCode () << " checksum = " << (uint32_t)GetChecksum () << " mtu = " << (uint32_t)GetMtu () << ")";
|
||||
}
|
||||
@@ -1150,7 +1150,7 @@ void Icmpv6TimeExceeded::SetPacket (Ptr<Packet> p)
|
||||
m_packet = p;
|
||||
}
|
||||
|
||||
void Icmpv6TimeExceeded::Print (std::ostream& os)
|
||||
void Icmpv6TimeExceeded::Print (std::ostream& os) const
|
||||
{
|
||||
os << "( type = " << (uint32_t)GetType () << " (Destination Unreachable) code = " << (uint32_t)GetCode () << " checksum = " << (uint32_t)GetChecksum () << ")";
|
||||
}
|
||||
@@ -1245,7 +1245,7 @@ void Icmpv6ParameterError::SetPtr (uint32_t ptr)
|
||||
m_ptr = ptr;
|
||||
}
|
||||
|
||||
void Icmpv6ParameterError::Print (std::ostream& os)
|
||||
void Icmpv6ParameterError::Print (std::ostream& os) const
|
||||
{
|
||||
os << "( type = " << (uint32_t)GetType () << " (Destination Unreachable) code = " << (uint32_t)GetCode () << " checksum = " << (uint32_t)GetChecksum () << " ptr = " << (uint32_t)GetPtr () << ")";
|
||||
}
|
||||
|
||||
@@ -384,8 +384,8 @@ class Icmpv6NS : public Icmpv6Header
|
||||
void SetIpv6Target (Ipv6Address target);
|
||||
|
||||
/**
|
||||
* \brief Get the IPv6 target field.
|
||||
* \return IPv6 address
|
||||
* \brief Print informations.
|
||||
* \param os output stream
|
||||
*/
|
||||
virtual void Print (std::ostream& os) const;
|
||||
|
||||
@@ -799,7 +799,7 @@ class Icmpv6RS : public Icmpv6Header
|
||||
* \brief Print informations.
|
||||
* \param os output stream
|
||||
*/
|
||||
virtual void Print (std::ostream& os);
|
||||
virtual void Print (std::ostream& os) const;
|
||||
|
||||
/**
|
||||
* \brief Get the serialized size.
|
||||
@@ -884,7 +884,7 @@ class Icmpv6Redirection : public Icmpv6Header
|
||||
* \brief Print informations.
|
||||
* \param os output stream
|
||||
*/
|
||||
virtual void Print (std::ostream& os);
|
||||
virtual void Print (std::ostream& os) const;
|
||||
|
||||
/**
|
||||
* \brief Get the serialized size.
|
||||
@@ -1075,7 +1075,7 @@ class Icmpv6DestinationUnreachable : public Icmpv6Header
|
||||
* \brief Print informations.
|
||||
* \param os output stream
|
||||
*/
|
||||
virtual void Print (std::ostream& os);
|
||||
virtual void Print (std::ostream& os) const;
|
||||
|
||||
/**
|
||||
* \brief Get the serialized size.
|
||||
@@ -1160,7 +1160,7 @@ class Icmpv6TooBig : public Icmpv6Header
|
||||
* \brief Print informations.
|
||||
* \param os output stream
|
||||
*/
|
||||
virtual void Print (std::ostream& os);
|
||||
virtual void Print (std::ostream& os) const;
|
||||
|
||||
/**
|
||||
* \brief Get the serialized size.
|
||||
@@ -1239,7 +1239,7 @@ class Icmpv6TimeExceeded : public Icmpv6Header
|
||||
* \brief Print informations.
|
||||
* \param os output stream
|
||||
*/
|
||||
virtual void Print (std::ostream& os);
|
||||
virtual void Print (std::ostream& os) const;
|
||||
|
||||
/**
|
||||
* \brief Get the serialized size.
|
||||
@@ -1325,7 +1325,7 @@ class Icmpv6ParameterError : public Icmpv6Header
|
||||
* \brief Print informations.
|
||||
* \param os output stream
|
||||
*/
|
||||
virtual void Print (std::ostream& os);
|
||||
virtual void Print (std::ostream& os) const;
|
||||
|
||||
/**
|
||||
* \brief Get the serialized size.
|
||||
|
||||
@@ -63,13 +63,17 @@ public:
|
||||
Ipv4L3Protocol();
|
||||
virtual ~Ipv4L3Protocol ();
|
||||
|
||||
/**
|
||||
* \enum DropReason
|
||||
* \brief Reason why a packet has been dropped.
|
||||
*/
|
||||
enum DropReason
|
||||
{
|
||||
DROP_TTL_EXPIRED = 1,
|
||||
DROP_NO_ROUTE,
|
||||
DROP_BAD_CHECKSUM,
|
||||
DROP_INTERFACE_DOWN,
|
||||
DROP_ROUTE_ERROR,
|
||||
DROP_TTL_EXPIRED = 1, /**< Packet TTL has expired */
|
||||
DROP_NO_ROUTE, /**< No route to host */
|
||||
DROP_BAD_CHECKSUM, /**< Bad checksum */
|
||||
DROP_INTERFACE_DOWN, /**< Interface is down so can not send packet */
|
||||
DROP_ROUTE_ERROR, /**< Route error */
|
||||
};
|
||||
|
||||
void SetNode (Ptr<Node> node);
|
||||
|
||||
@@ -100,13 +100,13 @@ class Ipv6AutoconfiguredPrefix : public Object
|
||||
uint32_t GetValidLifeTime (void) const;
|
||||
|
||||
/**
|
||||
* \brief Set the prefix valid life time
|
||||
* \brief Set the prefix valid life time.
|
||||
* \param v the prefix valid life time
|
||||
*/
|
||||
void SetValidLifeTime (uint32_t v);
|
||||
|
||||
/**
|
||||
* \brief Test if the prefix is preferred
|
||||
* \brief Test if the prefix is preferred.
|
||||
* \return true if prefix is in preferred state, false otherwise
|
||||
*/
|
||||
bool IsPreferred () const;
|
||||
@@ -118,74 +118,74 @@ class Ipv6AutoconfiguredPrefix : public Object
|
||||
bool IsValid () const;
|
||||
|
||||
/**
|
||||
* \brief Set the prefix as preferred
|
||||
* \brief Set the prefix as preferred.
|
||||
*/
|
||||
void SetPreferred ();
|
||||
|
||||
/**
|
||||
* \brief Set the prefix as valid
|
||||
* \brief Set the prefix as valid.
|
||||
*/
|
||||
void SetValid ();
|
||||
|
||||
/**
|
||||
* \brief Start the preferred timer
|
||||
* \brief Start the preferred timer.
|
||||
*/
|
||||
void StartPreferredTimer ();
|
||||
|
||||
/**
|
||||
* \brief Start the valid timer
|
||||
* \brief Start the valid timer.
|
||||
*/
|
||||
void StartValidTimer ();
|
||||
|
||||
/**
|
||||
* \brief Stop the preferred timer
|
||||
* \brief Stop the preferred timer.
|
||||
*/
|
||||
void StopPreferredTimer ();
|
||||
|
||||
/**
|
||||
* \brief Stop the valid timer
|
||||
* \brief Stop the valid timer.
|
||||
*/
|
||||
void StopValidTimer ();
|
||||
|
||||
/**
|
||||
* \brief Set the prefix as preferred
|
||||
* \brief Set the prefix as preferred.
|
||||
*/
|
||||
void MarkPreferredTime ();
|
||||
|
||||
/**
|
||||
* \brief Set the prefix as valid
|
||||
* \brief Set the prefix as valid.
|
||||
*/
|
||||
void MarkValidTime ();
|
||||
|
||||
/**
|
||||
* \brief Signal that the preferred time expired and start the valid timer
|
||||
* \brief Signal that the preferred time expired and start the valid timer.
|
||||
*/
|
||||
void FunctionPreferredTimeout ();
|
||||
|
||||
/**
|
||||
* \brief Signal that the valid time expired
|
||||
* \brief Signal that the valid time expired.
|
||||
*/
|
||||
void FunctionValidTimeout ();
|
||||
|
||||
/**
|
||||
* \brief Remove this prefix from the prefix list
|
||||
* \brief Remove this prefix from the prefix list.
|
||||
*/
|
||||
void RemoveMe ();
|
||||
|
||||
/**
|
||||
* \brief Get the prefix identificator
|
||||
* \brief Get the prefix identifier.
|
||||
* \return id of the prefix.
|
||||
*/
|
||||
uint32_t GetId () const;
|
||||
|
||||
/**
|
||||
* \brief Get the prefix address
|
||||
* \brief Get the prefix address.
|
||||
* \return prefix address
|
||||
*/
|
||||
Ipv6Address GetPrefix () const;
|
||||
|
||||
/**
|
||||
* \brief Set the prefix address
|
||||
* \brief Set the prefix address.
|
||||
* \param prefix prefix address to set
|
||||
*/
|
||||
void SetPrefix (Ipv6Address prefix);
|
||||
@@ -229,7 +229,8 @@ class Ipv6AutoconfiguredPrefix : public Object
|
||||
Ipv6Prefix m_mask;
|
||||
|
||||
/**
|
||||
* \brief Default gateway router
|
||||
* \brief Default gateway router.
|
||||
*
|
||||
* If the RA received also configured the default gateway,
|
||||
* this variable has the link-local address. Otherwise this
|
||||
* is "::"
|
||||
|
||||
@@ -95,7 +95,8 @@ class Ipv6EndPointDemux
|
||||
|
||||
/**
|
||||
* \brief Allocate a Ipv6EndPoint.
|
||||
* \return an empty Ipv6EndPoint instance
|
||||
* \param address IPv6 address
|
||||
* \return an Ipv6EndPoint instance
|
||||
*/
|
||||
Ipv6EndPoint *Allocate (Ipv6Address address);
|
||||
|
||||
|
||||
@@ -59,13 +59,16 @@ class Ipv6L3Protocol : public Ipv6
|
||||
*/
|
||||
static const uint16_t PROT_NUMBER;
|
||||
|
||||
/**
|
||||
* \enum DropReason
|
||||
* \brief Reason why a packet has been dropped.
|
||||
*/
|
||||
enum DropReason
|
||||
{
|
||||
DROP_TTL_EXPIRED = 1,
|
||||
DROP_NO_ROUTE,
|
||||
DROP_BAD_CHECKSUM,
|
||||
DROP_INTERFACE_DOWN,
|
||||
DROP_ROUTE_ERROR,
|
||||
DROP_TTL_EXPIRED = 1, /**< Packet TTL has expired */
|
||||
DROP_NO_ROUTE, /**< No route to host */
|
||||
DROP_INTERFACE_DOWN, /**< Interface is down so can not send packet */
|
||||
DROP_ROUTE_ERROR, /**< Route error */
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -216,6 +219,7 @@ class Ipv6L3Protocol : public Ipv6
|
||||
|
||||
/**
|
||||
* \brief Get number of address for an interface.
|
||||
* \param interface interface index
|
||||
* \return number of address
|
||||
*/
|
||||
uint32_t GetNAddresses (uint32_t interface) const;
|
||||
|
||||
@@ -44,14 +44,14 @@ class Ipv6L4Protocol : public Object
|
||||
*/
|
||||
enum RxStatus_e
|
||||
{
|
||||
RX_OK,
|
||||
RX_CSUM_FAILED,
|
||||
RX_ENDPOINT_UNREACH
|
||||
RX_OK, /**< Receive OK */
|
||||
RX_CSUM_FAILED, /**< Checksum of layer 4 protocol failed */
|
||||
RX_ENDPOINT_UNREACH /**< Destination unreachable */
|
||||
};
|
||||
|
||||
/**
|
||||
* \brief Get the type identificator.
|
||||
* \return type identificator
|
||||
* \brief Get the type identifier.
|
||||
* \return type identifier
|
||||
*/
|
||||
static TypeId GetTypeId (void);
|
||||
|
||||
@@ -77,9 +77,12 @@ class Ipv6L4Protocol : public Object
|
||||
* \param incomingInterface the Ipv6Interface on which the packet arrived
|
||||
* \return status (OK, destination unreachable or checksum failed)
|
||||
*/
|
||||
virtual enum RxStatus_e Receive (Ptr<Packet> p, Ipv6Address const &src, Ipv6Address const &dst, Ptr<Ipv6Interface> incomingInterface) = 0;
|
||||
virtual enum RxStatus_e Receive (Ptr<Packet> p, Ipv6Address const &src,
|
||||
Ipv6Address const &dst,
|
||||
Ptr<Ipv6Interface> incomingInterface) = 0;
|
||||
|
||||
/**
|
||||
* \brief ICMPv6 receive method.
|
||||
* \param icmpSource the source address of the ICMPv6 message
|
||||
* \param icmpTtl the ttl of the ICMPv6 message
|
||||
* \param icmpType the 'type' field of the ICMPv6 message
|
||||
@@ -94,9 +97,9 @@ class Ipv6L4Protocol : public Object
|
||||
* which triggered the ICMPv6 message.
|
||||
*/
|
||||
virtual void ReceiveIcmp (Ipv6Address icmpSource, uint8_t icmpTtl,
|
||||
uint8_t icmpType, uint8_t icmpCode, uint32_t icmpInfo,
|
||||
Ipv6Address payloadSource, Ipv6Address payloadDestination,
|
||||
const uint8_t* payload);
|
||||
uint8_t icmpType, uint8_t icmpCode, uint32_t icmpInfo,
|
||||
Ipv6Address payloadSource, Ipv6Address payloadDestination,
|
||||
const uint8_t* payload);
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -443,7 +443,7 @@ class NdiscCache : public Object
|
||||
Ptr<Ipv6Interface> m_interface;
|
||||
|
||||
/**
|
||||
* A list of Entry.
|
||||
* \brief A list of Entry.
|
||||
*/
|
||||
Cache m_ndCache;
|
||||
|
||||
|
||||
@@ -214,7 +214,8 @@ class Ipv6Address
|
||||
operator Address () const;
|
||||
|
||||
/**
|
||||
* \brief Convert the Address object into an Ipv6Address one.
|
||||
* \brief Convert the Address object into an Ipv6Address ones.
|
||||
* \param address address to convert
|
||||
* \return an Ipv6Address
|
||||
*/
|
||||
static Ipv6Address ConvertFrom (const Address& address);
|
||||
@@ -403,13 +404,13 @@ class Ipv6Prefix
|
||||
|
||||
/**
|
||||
* \class ns3::Ipv6AddressValue
|
||||
* \brief hold objects of type ns3::Ipv6Address
|
||||
* \brief Hold objects of type ns3::Ipv6Address
|
||||
*/
|
||||
ATTRIBUTE_HELPER_HEADER (Ipv6Address);
|
||||
|
||||
/**
|
||||
* \class ns3::Ipv6PrefixValue
|
||||
* \brief hold objects of type ns3::Ipv6Prefix
|
||||
* \brief Hold objects of type ns3::Ipv6Prefix
|
||||
*/
|
||||
ATTRIBUTE_HELPER_HEADER (Ipv6Prefix);
|
||||
|
||||
@@ -433,9 +434,17 @@ inline bool operator < (const Ipv6Address& a, const Ipv6Address& b)
|
||||
return (memcmp (a.m_address, b.m_address, 16) < 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* \class Ipv6AddressHash
|
||||
* \brief Hash function class for IPv6 addresses.
|
||||
*/
|
||||
class Ipv6AddressHash : public std::unary_function<Ipv6Address, size_t>
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* \brief Unary operator to hash IPv6 address.
|
||||
* \param x IPv6 address to hash
|
||||
*/
|
||||
size_t operator () (Ipv6Address const &x) const;
|
||||
};
|
||||
|
||||
|
||||
@@ -190,7 +190,7 @@ class Ipv6InterfaceAddress
|
||||
|
||||
std::ostream& operator<< (std::ostream& os, const Ipv6InterfaceAddress &addr);
|
||||
|
||||
/* follow Ipv6InterfaceAddress way, maybe not inline them */
|
||||
/* follow Ipv4InterfaceAddress way, maybe not inline them */
|
||||
inline bool operator == (const Ipv6InterfaceAddress& a, const Ipv6InterfaceAddress& b)
|
||||
{
|
||||
return (a.m_address == b.m_address && a.m_prefix == b.m_prefix &&
|
||||
|
||||
@@ -177,22 +177,26 @@ class Ipv6MulticastRoute : public RefCountBase
|
||||
Ipv6Address GetOrigin (void) const;
|
||||
|
||||
/**
|
||||
* \brief Set parent for this route.
|
||||
* \param iif Parent (input interface) for this route
|
||||
*/
|
||||
void SetParent (uint32_t iif);
|
||||
|
||||
/**
|
||||
* \brief Get parent for this route.
|
||||
* \return Parent (input interface) for this route
|
||||
*/
|
||||
uint32_t GetParent (void) const;
|
||||
|
||||
/**
|
||||
* \brief set output TTL for this route.
|
||||
* \param oif Outgoing interface index
|
||||
* \param ttl time-to-live for this route
|
||||
*/
|
||||
void SetOutputTtl (uint32_t oif, uint32_t ttl);
|
||||
|
||||
/**
|
||||
* \brief Get output TTL.
|
||||
* \brief Get output TTL for this route.
|
||||
* \param oif outgoing interface
|
||||
* \return TTL for this route
|
||||
*/
|
||||
@@ -215,7 +219,7 @@ class Ipv6MulticastRoute : public RefCountBase
|
||||
uint32_t m_parent;
|
||||
|
||||
/**
|
||||
* \brief TTLs;
|
||||
* \brief TTLs.
|
||||
*/
|
||||
std::vector<uint32_t> m_ttls;
|
||||
};
|
||||
|
||||
@@ -40,6 +40,7 @@ class NetDevice;
|
||||
* \ingroup node
|
||||
* \defgroup ipv6Routing Ipv6RoutingProtocol
|
||||
*/
|
||||
|
||||
/**
|
||||
* \ingroup ipv6Routing
|
||||
* \brief Abstract base class for Ipv6 routing protocols.
|
||||
@@ -103,37 +104,42 @@ public:
|
||||
LocalDeliverCallback lcb, ErrorCallback ecb) = 0;
|
||||
|
||||
/**
|
||||
* \param interface the index of the interface we are being notified about
|
||||
* \brief 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.
|
||||
* \param interface the index of the interface we are being notified about
|
||||
*/
|
||||
virtual void NotifyInterfaceUp (uint32_t interface) = 0;
|
||||
|
||||
/**
|
||||
* \param interface the index of the interface we are being notified about
|
||||
* \brief 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.
|
||||
* \param interface the index of the interface we are being notified about
|
||||
*/
|
||||
virtual void NotifyInterfaceDown (uint32_t interface) = 0;
|
||||
|
||||
/**
|
||||
* \param interface the index of the interface we are being notified about
|
||||
* \param address a new address being added to an interface
|
||||
* \brief 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.
|
||||
* \param interface the index of the interface we are being notified about
|
||||
* \param address a new address being added to an interface
|
||||
*/
|
||||
virtual void NotifyAddAddress (uint32_t interface, Ipv6InterfaceAddress address) = 0;
|
||||
|
||||
/**
|
||||
* \param interface the index of the interface we are being notified about
|
||||
* \param address a new address being added to an interface
|
||||
* \brief 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.
|
||||
* \param interface the index of the interface we are being notified about
|
||||
* \param address a new address being added to an interface
|
||||
*/
|
||||
virtual void NotifyRemoveAddress (uint32_t interface, Ipv6InterfaceAddress address) = 0;
|
||||
|
||||
@@ -161,9 +167,8 @@ public:
|
||||
virtual void NotifyRemoveRoute (Ipv6Address dst, Ipv6Prefix mask, Ipv6Address nextHop, uint32_t interface, Ipv6Address prefixToUse = Ipv6Address::GetZero ()) = 0;
|
||||
|
||||
/**
|
||||
* \brief Typically, invoked directly or indirectly from ns3::Ipv6::SetRoutingProtocol
|
||||
* \param ipv6 the ipv6 object this routing protocol is being associated with
|
||||
*
|
||||
* Typically, invoked directly or indirectly from ns3::Ipv6::SetRoutingProtocol
|
||||
*/
|
||||
virtual void SetIpv6 (Ptr<Ipv6> ipv6) = 0;
|
||||
};
|
||||
|
||||
@@ -110,17 +110,19 @@ public:
|
||||
virtual Ptr<Ipv6RoutingProtocol> GetRoutingProtocol (void) const = 0;
|
||||
|
||||
/**
|
||||
* \param device device to add to the list of IPv6 interfaces
|
||||
* which can be used as output interfaces during packet forwarding.
|
||||
* \returns the index of the IPv6 interface added.
|
||||
* \brief Add a NetDevice interface.
|
||||
*
|
||||
* Once a device has been added, it can never be removed: if you want
|
||||
* to disable it, you can invoke Ipv6::SetDown which will
|
||||
* make sure that it is never used during packet forwarding.
|
||||
* \param device device to add to the list of IPv6 interfaces
|
||||
* which can be used as output interfaces during packet forwarding.
|
||||
* \returns the index of the IPv6 interface added.
|
||||
*/
|
||||
virtual uint32_t AddInterface (Ptr<NetDevice> device) = 0;
|
||||
|
||||
/**
|
||||
* \brief Get number of interfaces.
|
||||
* \returns the number of interfaces added by the user.
|
||||
*/
|
||||
virtual uint32_t GetNInterfaces (void) const = 0;
|
||||
@@ -161,18 +163,21 @@ public:
|
||||
Ipv6Prefix mask) const = 0;
|
||||
|
||||
/**
|
||||
* \brief Get the NetDevice of the specified interface number.
|
||||
* \param interface The interface number of an IPv6 interface.
|
||||
* \returns The NetDevice associated with the IPv6 interface number.
|
||||
*/
|
||||
virtual Ptr<NetDevice> GetNetDevice (uint32_t interface) = 0;
|
||||
|
||||
/**
|
||||
* \brief Get the interface index of the specified NetDevice.
|
||||
* \param device The NetDevice for an Ipv6Interface
|
||||
* \returns The interface number of an IPv6 interface or -1 if not found.
|
||||
*/
|
||||
virtual int32_t GetInterfaceForDevice (Ptr<const NetDevice> device) const = 0;
|
||||
|
||||
/**
|
||||
* \brief Add an address on the specified IPv6 interface.
|
||||
* \param interface Interface number of an IPv6 interface
|
||||
* \param address Ipv6InterfaceAddress address to associate with the underlying IPv6 interface
|
||||
* \returns true if the operation succeeded
|
||||
@@ -180,12 +185,15 @@ public:
|
||||
virtual bool AddAddress (uint32_t interface, Ipv6InterfaceAddress address) = 0;
|
||||
|
||||
/**
|
||||
* \brief Get number of addresses on specified IPv6 interface.
|
||||
* \param interface Interface number of an IPv6 interface
|
||||
* \returns the number of Ipv6InterfaceAddress entries for the interface.
|
||||
*/
|
||||
virtual uint32_t GetNAddresses (uint32_t interface) const = 0;
|
||||
|
||||
/**
|
||||
* \brief Get IPv6 address on specified IPv6 interface.
|
||||
*
|
||||
* Because addresses can be removed, the addressIndex is not guaranteed
|
||||
* to be static across calls to this method.
|
||||
*
|
||||
@@ -196,6 +204,8 @@ public:
|
||||
virtual Ipv6InterfaceAddress GetAddress (uint32_t interface, uint32_t addressIndex) const = 0;
|
||||
|
||||
/**
|
||||
* \brief Remove an address on specified IPv6 interface.
|
||||
*
|
||||
* Remove the address at addressIndex on named interface. The addressIndex
|
||||
* for all higher indices will decrement by one after this method is called;
|
||||
* so, for example, to remove 5 addresses from an interface i, one could
|
||||
@@ -208,6 +218,8 @@ public:
|
||||
virtual bool RemoveAddress (uint32_t interface, uint32_t addressIndex) = 0;
|
||||
|
||||
/**
|
||||
* \brief Set metric on specified Ipv6 interface.
|
||||
*
|
||||
* \param interface The interface number of an IPv6 interface
|
||||
* \param metric routing metric (cost) associated to the underlying
|
||||
* IPv6 interface
|
||||
@@ -215,6 +227,8 @@ public:
|
||||
virtual void SetMetric (uint32_t interface, uint16_t metric) = 0;
|
||||
|
||||
/**
|
||||
* \brief Get metric for the specified IPv6 interface.
|
||||
*
|
||||
* \param interface The interface number of an IPv6 interface
|
||||
* \returns routing metric (cost) associated to the underlying
|
||||
* IPv6 interface
|
||||
@@ -222,6 +236,7 @@ public:
|
||||
virtual uint16_t GetMetric (uint32_t interface) const = 0;
|
||||
|
||||
/**
|
||||
* \brief Get MTU for the specified IPv6 interface.
|
||||
* \param interface Interface number of IPv6 interface
|
||||
* \returns the Maximum Transmission Unit (in bytes) associated
|
||||
* to the underlying IPv6 interface
|
||||
@@ -229,6 +244,7 @@ public:
|
||||
virtual uint16_t GetMtu (uint32_t interface) const = 0;
|
||||
|
||||
/**
|
||||
* \brief If the specified interface index is in "up" state.
|
||||
* \param interface Interface number of IPv6 interface
|
||||
* \returns true if the underlying interface is in the "up" state,
|
||||
* false otherwise.
|
||||
@@ -236,28 +252,30 @@ public:
|
||||
virtual bool IsUp (uint32_t interface) const = 0;
|
||||
|
||||
/**
|
||||
* \brief Set the interface into the "up" state.
|
||||
*
|
||||
* In this state, it is considered valid during IPv6 forwarding.
|
||||
* \param interface Interface number of IPv6 interface
|
||||
*
|
||||
* Set the interface into the "up" state. In this state, it is
|
||||
* considered valid during IPv6 forwarding.
|
||||
*/
|
||||
virtual void SetUp (uint32_t interface) = 0;
|
||||
|
||||
/**
|
||||
* \param interface Interface number of IPv6 interface
|
||||
* \brief Set the interface into the "down" state.
|
||||
*
|
||||
* Set the interface into the "down" state. In this state, it is
|
||||
* ignored during IPv6 forwarding.
|
||||
* In this state, it is ignored during IPv6 forwarding.
|
||||
* \param interface Interface number of IPv6 interface
|
||||
*/
|
||||
virtual void SetDown (uint32_t interface) = 0;
|
||||
|
||||
/**
|
||||
* \brief If the specified IPv6 interface has forwarding enabled.
|
||||
* \param interface Interface number of IPv6 interface
|
||||
* \returns true if IPv6 forwarding enabled for input datagrams on this device
|
||||
*/
|
||||
virtual bool IsForwarding (uint32_t interface) const = 0;
|
||||
|
||||
/**
|
||||
* \brief Set forwarding on specified IPv6 interface.
|
||||
* \param interface Interface number of IPv6 interface
|
||||
* \param val Value to set the forwarding flag
|
||||
*
|
||||
|
||||
@@ -728,7 +728,7 @@ PbbPacket::Unref (void) const
|
||||
TypeId
|
||||
PbbPacket::GetTypeId (void)
|
||||
{
|
||||
static TypeId tid = TypeId ("PbbPacket")
|
||||
static TypeId tid = TypeId ("ns3::PbbPacket")
|
||||
.SetParent<Header> ()
|
||||
.AddConstructor<PbbPacket> ()
|
||||
;
|
||||
|
||||
@@ -28,8 +28,11 @@ namespace ns3 {
|
||||
* \ingroup routing
|
||||
* \defgroup ipv6ListRouting Ipv6 List Routing
|
||||
*/
|
||||
|
||||
/**
|
||||
* \ingroup ipv6ListRouting
|
||||
* \class Ipv6ListRouting
|
||||
* \brief Hold list of Ipv6RoutingProtocol objects.
|
||||
*
|
||||
* This class is a specialization of Ipv6RoutingProtocol that allows
|
||||
* other instances of Ipv6RoutingProtocol to be inserted in a
|
||||
@@ -44,33 +47,46 @@ namespace ns3 {
|
||||
class Ipv6ListRouting : public Ipv6RoutingProtocol
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* \brief Get the type ID of this class.
|
||||
* \return type ID
|
||||
*/
|
||||
static TypeId GetTypeId (void);
|
||||
|
||||
/**
|
||||
* \brief Constructor.
|
||||
*/
|
||||
Ipv6ListRouting ();
|
||||
|
||||
/**
|
||||
* \brief Destructor.
|
||||
*/
|
||||
virtual ~Ipv6ListRouting ();
|
||||
|
||||
/**
|
||||
* \brief Register a new routing protocol to be used in this IPv4 stack
|
||||
*
|
||||
* \param routingProtocol new routing protocol implementation object
|
||||
* \param priority priority to give to this routing protocol.
|
||||
* Values may range between -32768 and +32767.
|
||||
*/
|
||||
virtual void AddRoutingProtocol (Ptr<Ipv6RoutingProtocol> routingProtocol, int16_t priority);
|
||||
|
||||
/**
|
||||
* \brief Get the number of routing protocols.
|
||||
* \return number of routing protocols in the list
|
||||
*/
|
||||
virtual uint32_t GetNRoutingProtocols (void) const;
|
||||
|
||||
/**
|
||||
* Return pointer to routing protocol stored at index, with the
|
||||
* first protocol (index 0) the highest priority, the next one (index 1)
|
||||
* \brief Get pointer to routing protocol stored at index,
|
||||
*
|
||||
* The first protocol (index 0) the highest priority, the next one (index 1)
|
||||
* the second highest priority, and so on. The priority parameter is an
|
||||
* output parameter and it returns the integer priority of the protocol.
|
||||
*
|
||||
* \return pointer to routing protocol indexed by
|
||||
* \param index index of protocol to return
|
||||
* \param priority output parameter, set to the priority of the protocol
|
||||
being returned
|
||||
* being returned
|
||||
* \return pointer to routing protocol indexed by
|
||||
*/
|
||||
virtual Ptr<Ipv6RoutingProtocol> GetRoutingProtocol (uint32_t index, int16_t& priority) const;
|
||||
|
||||
@@ -89,14 +105,32 @@ public:
|
||||
virtual void SetIpv6 (Ptr<Ipv6> ipv6);
|
||||
|
||||
protected:
|
||||
/**
|
||||
* \brief Dispose this object.
|
||||
*/
|
||||
void DoDispose (void);
|
||||
|
||||
private:
|
||||
typedef std::pair<int16_t, Ptr<Ipv6RoutingProtocol> > Ipv6RoutingProtocolEntry;
|
||||
typedef std::list<Ipv6RoutingProtocolEntry> Ipv6RoutingProtocolList;
|
||||
Ipv6RoutingProtocolList m_routingProtocols;
|
||||
static bool Compare (const Ipv6RoutingProtocolEntry& a, const Ipv6RoutingProtocolEntry& b);
|
||||
Ptr<Ipv6> m_ipv6;
|
||||
|
||||
/**
|
||||
* \brief Compare two routing protocols.
|
||||
* \param a first object to compare
|
||||
* \param b second object to compare
|
||||
* \return true if they are the same, false otherwise
|
||||
*/
|
||||
static bool Compare (const Ipv6RoutingProtocolEntry& a, const Ipv6RoutingProtocolEntry& b);
|
||||
|
||||
/**
|
||||
* \brief List of routing protocols.
|
||||
*/
|
||||
Ipv6RoutingProtocolList m_routingProtocols;
|
||||
|
||||
/**
|
||||
* \brief Ipv6 reference.
|
||||
*/
|
||||
Ptr<Ipv6> m_ipv6;
|
||||
};
|
||||
|
||||
} //namespace ns3
|
||||
|
||||
@@ -58,7 +58,7 @@ class Ipv6StaticRouting : public Ipv6RoutingProtocol
|
||||
public:
|
||||
/**
|
||||
* \brief The interface Id associated with this class.
|
||||
* \return type identificator
|
||||
* \return type identifier
|
||||
*/
|
||||
static TypeId GetTypeId ();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user