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 28 of file ipv6-interface-container.h.
|
private |
Container for pairs of Ipv6 smart pointer / Interface Index.
Definition at line 220 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 34 of file ipv6-interface-container.h.
ns3::Ipv6InterfaceContainer::Ipv6InterfaceContainer | ( | ) |
Constructor.
Definition at line 21 of file ipv6-interface-container.cc.
void ns3::Ipv6InterfaceContainer::Add | ( | const Ipv6InterfaceContainer & | c | ) |
Fusion with another Ipv6InterfaceContainer.
c | container |
Definition at line 71 of file ipv6-interface-container.cc.
References m_interfaces.
Add a couple IPv6/interface.
ipv6 | IPv6 address |
interface | interface index |
Definition at line 58 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 64 of file ipv6-interface-container.cc.
References ns3::Names::Find(), and 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 26 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 32 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 80 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 50 of file ipv6-interface-container.cc.
References m_interfaces.
Referenced by ThreeGppHttpObjectTestCase::AssignIpv6Address(), IcmpV6EchoReplyTestCase::DoRun(), IcmpV6TimeExceedTestCase::DoRun(), IpAddressHelperTestCasev6::DoRun(), LteIpv6RoutingTestCase::DoRun(), NixVectorRoutingTest::DoRun(), PingTestCase::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 44 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 240 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 224 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(), 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 38 of file ipv6-interface-container.cc.
References m_interfaces.
Referenced by ThreeGppHttpObjectTestCase::AssignIpv6Address(), 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 184 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 162 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 120 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 93 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(), Ipv6RipngCountToInfinityTest::DoRun(), Ipv6RipngTest::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 86 of file ipv6-interface-container.cc.
References m_interfaces.
Referenced by ns3::NoBackhaulEpcHelper::NoBackhaulEpcHelper(), IcmpV6TimeExceedTestCase::DoRun(), Ipv6RipngCountToInfinityTest::DoRun(), Ipv6RipngSplitHorizonStrategyTest::DoRun(), Ipv6RipngTest::DoRun(), LteIpv6RoutingTestCase::DoRun(), RadvdTestCase::DoRun(), and NeighborCacheExample::Run().
|
private |
List of IPv6 stack and interfaces index.
Definition at line 225 of file ipv6-interface-container.h.
Referenced by Add(), Add(), Add(), Begin(), End(), Get(), GetAddress(), GetInterfaceIndex(), GetLinkLocalAddress(), GetLinkLocalAddress(), GetN(), SetDefaultRoute(), SetDefaultRoute(), SetDefaultRouteInAllNodes(), SetDefaultRouteInAllNodes(), and SetForwarding().