Keep track of a set of IPv6 interfaces. More...
#include "ipv6-interface-container.h"
Public Types | |
typedef std::vector< std::pair< Ptr< Ipv6 >, uint32_t > >::const_iterator | Iterator |
Container Const Iterator for pairs of Ipv6 smart pointer / Interface Index. | |
Public Member Functions | |
Ipv6InterfaceContainer () | |
Constructor. | |
void | Add (const Ipv6InterfaceContainer &c) |
Fusion with another Ipv6InterfaceContainer. | |
void | Add (Ptr< Ipv6 > ipv6, uint32_t interface) |
Add a couple IPv6/interface. | |
void | Add (std::string ipv6Name, uint32_t interface) |
Add a couple of name/interface. | |
Iterator | Begin () const |
Get an iterator which refers to the first pair in the container. | |
Iterator | End () const |
Get an iterator which indicates past-the-last Node in the container. | |
std::pair< Ptr< Ipv6 >, uint32_t > | Get (uint32_t i) const |
Get the std::pair of an Ptr<Ipv6> and interface stored at the location specified by the index. | |
Ipv6Address | GetAddress (uint32_t i, uint32_t j) const |
Get the address for the specified index. | |
uint32_t | GetInterfaceIndex (uint32_t i) const |
Get the interface index for the specified node index. | |
Ipv6Address | GetLinkLocalAddress (Ipv6Address address) |
Get the link-local address for the node with the specified global address. | |
Ipv6Address | GetLinkLocalAddress (uint32_t i) |
Get the link-local address for the specified index. | |
uint32_t | GetN () const |
void | SetDefaultRoute (uint32_t i, Ipv6Address routerAddr) |
Set the default route for the specified index. | |
void | SetDefaultRoute (uint32_t i, uint32_t router) |
Set the default route for the specified index. | |
void | SetDefaultRouteInAllNodes (Ipv6Address routerAddr) |
Set the default route for all the devices (except the router itself). | |
void | SetDefaultRouteInAllNodes (uint32_t router) |
Set the default route for all the devices (except the router itself). | |
void | SetForwarding (uint32_t i, bool state) |
Set the state of the stack (act as a router or as an host) for the specified index. | |
Private Types | |
typedef std::vector< std::pair< Ptr< Ipv6 >, uint32_t > > | InterfaceVector |
Container for pairs of Ipv6 smart pointer / Interface Index. | |
Private Attributes | |
InterfaceVector | m_interfaces |
List of IPv6 stack and interfaces index. | |
Keep track of a set of IPv6 interfaces.
Definition at line 39 of file ipv6-interface-container.h.
|
private |
Container for pairs of Ipv6 smart pointer / Interface Index.
Definition at line 231 of file ipv6-interface-container.h.
typedef std::vector<std::pair<Ptr<Ipv6>,uint32_t>>::const_iterator ns3::Ipv6InterfaceContainer::Iterator |
Container Const Iterator for pairs of Ipv6 smart pointer / Interface Index.
Definition at line 45 of file ipv6-interface-container.h.
ns3::Ipv6InterfaceContainer::Ipv6InterfaceContainer | ( | ) |
Constructor.
Definition at line 32 of file ipv6-interface-container.cc.
void ns3::Ipv6InterfaceContainer::Add | ( | const Ipv6InterfaceContainer & | c | ) |
Fusion with another Ipv6InterfaceContainer.
c | container |
Definition at line 82 of file ipv6-interface-container.cc.
References m_interfaces.
Add a couple IPv6/interface.
ipv6 | IPv6 address |
interface | interface index |
Definition at line 69 of file ipv6-interface-container.cc.
References m_interfaces.
Referenced by ns3::Ipv6AddressHelper::Assign(), ns3::CsmaStarHelper::AssignIpv6Addresses(), ns3::PointToPointDumbbellHelper::AssignIpv6Addresses(), ns3::PointToPointGridHelper::AssignIpv6Addresses(), ns3::PointToPointStarHelper::AssignIpv6Addresses(), and RadvdTestCase::DoRun().
void ns3::Ipv6InterfaceContainer::Add | ( | std::string | ipv6Name, |
uint32_t | interface | ||
) |
Add a couple of name/interface.
ipv6Name | name of a node |
interface | interface index to add |
Definition at line 75 of file ipv6-interface-container.cc.
References m_interfaces.
Ipv6InterfaceContainer::Iterator ns3::Ipv6InterfaceContainer::Begin | ( | ) | const |
Get an iterator which refers to the first pair in the container.
Pairs can be retrieved from the container in two ways. First, directly by an index into the container, and second, using an iterator. This method is used in the iterator method and is typically used in a for-loop to run through the pairs
Definition at line 37 of file ipv6-interface-container.cc.
References m_interfaces.
Referenced by ns3::PointToPointDumbbellHelper::AssignIpv6Addresses(), ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6Impl(), and ns3::PcapHelperForIpv6::EnablePcapIpv6().
Ipv6InterfaceContainer::Iterator ns3::Ipv6InterfaceContainer::End | ( | ) | const |
Get an iterator which indicates past-the-last Node in the container.
Nodes can be retrieved from the container in two ways. First, directly by an index into the container, and second, using an iterator. This method is used in the iterator method and is typically used in a for-loop to run through the Nodes
Definition at line 43 of file ipv6-interface-container.cc.
References m_interfaces.
Referenced by ns3::AsciiTraceHelperForIpv6::EnableAsciiIpv6Impl(), and ns3::PcapHelperForIpv6::EnablePcapIpv6().
Get the std::pair of an Ptr<Ipv6> and interface stored at the location specified by the index.
i | the index of the container entry to retrieve. |
Definition at line 92 of file ipv6-interface-container.cc.
References m_interfaces.
Referenced by FlushTest::DoRun(), ns3::NeighborCacheHelper::PopulateNeighborCache(), and NeighborCacheExample::Run().
Ipv6Address ns3::Ipv6InterfaceContainer::GetAddress | ( | uint32_t | i, |
uint32_t | j | ||
) | const |
Get the address for the specified index.
i | interface index |
j | address index, generally index 0 is the link-local address |
Definition at line 61 of file ipv6-interface-container.cc.
References m_interfaces.
Referenced by ThreeGppHttpObjectTestCase::CreateSimpleInternetNode(), PingTestCase::DoRun(), IcmpV6EchoReplyTestCase::DoRun(), IcmpV6TimeExceedTestCase::DoRun(), IpAddressHelperTestCasev6::DoRun(), LteIpv6RoutingTestCase::DoRun(), NixVectorRoutingTest::DoRun(), SixlowpanIphcStatefulImplTest::DoRun(), ns3::CsmaStarHelper::GetHubIpv6Address(), ns3::PointToPointStarHelper::GetHubIpv6Address(), ns3::PointToPointDumbbellHelper::GetLeftIpv6Address(), ns3::PointToPointDumbbellHelper::GetRightIpv6Address(), ns3::CsmaStarHelper::GetSpokeIpv6Address(), ns3::PointToPointStarHelper::GetSpokeIpv6Address(), and NeighborCacheExample::Run().
Get the interface index for the specified node index.
i | index of the node |
Definition at line 55 of file ipv6-interface-container.cc.
References m_interfaces.
Referenced by RadvdTestCase::DoRun().
Ipv6Address ns3::Ipv6InterfaceContainer::GetLinkLocalAddress | ( | Ipv6Address | address | ) |
Get the link-local address for the node with the specified global address.
address | the address to find. |
Definition at line 252 of file ipv6-interface-container.cc.
References ns3::Ipv6InterfaceAddress::GetAddress(), ns3::Ipv6Address::GetAny(), ns3::Ipv6InterfaceAddress::GetScope(), ns3::Ipv6InterfaceAddress::LINKLOCAL, m_interfaces, and NS_ASSERT_MSG.
Ipv6Address ns3::Ipv6InterfaceContainer::GetLinkLocalAddress | ( | uint32_t | i | ) |
Get the link-local address for the specified index.
i | index |
Definition at line 236 of file ipv6-interface-container.cc.
References ns3::Ipv6InterfaceAddress::GetAddress(), ns3::Ipv6Address::GetAny(), ns3::Ipv6InterfaceAddress::GetScope(), ns3::Ipv6InterfaceAddress::LINKLOCAL, and m_interfaces.
Referenced by SetDefaultRoute(), and SetDefaultRouteInAllNodes().
uint32_t ns3::Ipv6InterfaceContainer::GetN | ( | ) | const |
Pairs can be retrieved from the container in two ways. First, directly by an index into the container, and second, using an iterator. This method is used in the direct method and is typically used to define an ending condition in a for-loop that runs through the stored Nodes
Definition at line 49 of file ipv6-interface-container.cc.
References m_interfaces.
Referenced by ThreeGppHttpObjectTestCase::CreateSimpleInternetNode(), and ns3::NeighborCacheHelper::PopulateNeighborCache().
void ns3::Ipv6InterfaceContainer::SetDefaultRoute | ( | uint32_t | i, |
Ipv6Address | routerAddr | ||
) |
Set the default route for the specified index.
Note that the route will be set to the link-local address of the node with the specified address.
i | index |
routerAddr | the default router address |
Definition at line 196 of file ipv6-interface-container.cc.
References GetLinkLocalAddress(), ns3::Ipv6StaticRoutingHelper::GetStaticRouting(), m_interfaces, and NS_ASSERT_MSG.
Set the default route for the specified index.
i | index |
router | the default router |
Definition at line 174 of file ipv6-interface-container.cc.
References ns3::Ipv6Address::GetAny(), GetLinkLocalAddress(), ns3::Ipv6StaticRoutingHelper::GetStaticRouting(), m_interfaces, and NS_ASSERT_MSG.
void ns3::Ipv6InterfaceContainer::SetDefaultRouteInAllNodes | ( | Ipv6Address | routerAddr | ) |
Set the default route for all the devices (except the router itself).
Note that the route will be set to the link-local address of the node with the specified address.
routerAddr | the default router address |
Definition at line 132 of file ipv6-interface-container.cc.
References ns3::Ipv6StaticRoutingHelper::GetStaticRouting(), m_interfaces, and NS_ASSERT_MSG.
void ns3::Ipv6InterfaceContainer::SetDefaultRouteInAllNodes | ( | uint32_t | router | ) |
Set the default route for all the devices (except the router itself).
router | the default router index |
Definition at line 105 of file ipv6-interface-container.cc.
References ns3::Ipv6Address::GetAny(), GetLinkLocalAddress(), ns3::Ipv6StaticRoutingHelper::GetStaticRouting(), m_interfaces, and NS_ASSERT_MSG.
Referenced by ns3::NoBackhaulEpcHelper::NoBackhaulEpcHelper(), IcmpV6TimeExceedTestCase::DoRun(), Ipv6RipngTest::DoRun(), Ipv6RipngCountToInfinityTest::DoRun(), LteIpv6RoutingTestCase::DoRun(), and NeighborCacheExample::Run().
void ns3::Ipv6InterfaceContainer::SetForwarding | ( | uint32_t | i, |
bool | state | ||
) |
Set the state of the stack (act as a router or as an host) for the specified index.
This automatically sets all the node's interfaces to the same forwarding state.
i | index |
state | true : is a router, false : is an host |
Definition at line 98 of file ipv6-interface-container.cc.
References m_interfaces.
Referenced by ns3::NoBackhaulEpcHelper::NoBackhaulEpcHelper(), RadvdTestCase::DoRun(), IcmpV6TimeExceedTestCase::DoRun(), Ipv6RipngTest::DoRun(), Ipv6RipngCountToInfinityTest::DoRun(), Ipv6RipngSplitHorizonStrategyTest::DoRun(), LteIpv6RoutingTestCase::DoRun(), and NeighborCacheExample::Run().
|
private |
List of IPv6 stack and interfaces index.
Definition at line 236 of file ipv6-interface-container.h.
Referenced by Add(), Begin(), End(), Get(), GetAddress(), GetInterfaceIndex(), GetLinkLocalAddress(), GetN(), SetDefaultRoute(), SetDefaultRouteInAllNodes(), and SetForwarding().