create a quagga routing daemon as an application and associate it to a node More...
#include <quagga-helper.h>
Public Member Functions | |
QuaggaHelper () | |
void | BgpAddNeighbor (Ptr< Node > node, std::string neighbor, uint32_t asn) |
Configure the neighbor of BGP peer to exchange the route information to the bgp daemon (via neighbor remote-as command). | |
void | EnableBgp (NodeContainer nodes) |
Enable the bgpd daemon to the nodes. | |
void | EnableHomeAgentFlag (Ptr< Node > node, const char *ifname) |
Configure HomeAgent Information Option (RFC 3775) in Router Advertisement to the zebra daemon (via ipv6 nd home-agent-config-flag). | |
void | EnableOspf (NodeContainer nodes, const char *network) |
Enable the ospfd daemon to the nodes. | |
void | EnableOspf6 (NodeContainer nodes, const char *ifname) |
Enable the ospf6d daemon (OSPFv3) to the nodes. | |
void | EnableOspf6Debug (NodeContainer nodes) |
Configure the debug option to the ospf6d daemon (via debug ospf6d xxx). | |
void | EnableOspfDebug (NodeContainer nodes) |
Configure the debug option to the ospfd daemon (via debug ospf xxx). | |
void | EnableRadvd (Ptr< Node > node, const char *ifname, const char *prefix) |
Enable Router Advertisement configuration to the zebra daemon (via no ipv6 nd suppress-ra xxx). | |
void | EnableRip (NodeContainer nodes, const char *ifname) |
Enable the ripd daemon (RIP v1/v2, RFC2453) to the nodes. | |
void | EnableRipDebug (NodeContainer nodes) |
Configure the debug option to the ripd daemon (via debug rip xxx). | |
void | EnableRipng (NodeContainer nodes, const char *ifname) |
Enable the ripngd daemon (RIPng, RFC2080) to the nodes. | |
void | EnableRipngDebug (NodeContainer nodes) |
Configure the debug option to the ripngd daemon (via debug ripng xxx). | |
void | EnableZebraDebug (NodeContainer nodes) |
Configure the debug option to the zebra daemon (via debug zebra xxx). | |
uint32_t | GetAsn (Ptr< Node > node) |
Get the Autonomous System number (AS number) of the nodes. | |
ApplicationContainer | Install (NodeContainer nodes) |
ApplicationContainer | Install (Ptr< Node > node) |
ApplicationContainer | Install (std::string nodeName) |
void | SetAttribute (std::string name, const AttributeValue &value) |
Configure ping applications attribute. | |
void | UseManualZebraConfig (NodeContainer nodes) |
Indicate the config file to edit by manually (locate zebra.conf at files-X/usr/local/etc/zebra.conf). |
Private Member Functions | |
void | GenerateConfigBgp (Ptr< Node > node) |
void | GenerateConfigOspf (Ptr< Node > node) |
void | GenerateConfigOspf6 (Ptr< Node > node) |
void | GenerateConfigRip (Ptr< Node > node) |
void | GenerateConfigRipng (Ptr< Node > node) |
void | GenerateConfigZebra (Ptr< Node > node) |
ApplicationContainer | InstallPriv (Ptr< Node > node) |
create a quagga routing daemon as an application and associate it to a node
This class creates one or multiple instances of ns3::Quagga and associates it/them to one/multiple node(s).
Definition at line 34 of file quagga-helper.h.
ns3::QuaggaHelper::QuaggaHelper | ( | ) |
Create a QuaggaHelper which is used to make life easier for people wanting to use quagga Applications.
Definition at line 591 of file quagga-helper.cc.
void ns3::QuaggaHelper::BgpAddNeighbor | ( | Ptr< Node > | node, |
std::string | neighbor, | ||
uint32_t | asn | ||
) |
Configure the neighbor of BGP peer to exchange the route information to the bgp daemon (via neighbor remote-as command).
neighbor | The string of the experssion of a remote neighbor (IPv4/v6 address). |
asn | The AS number of the remote neighbor. |
Definition at line 730 of file quagga-helper.cc.
References ns3::BgpConfig::SetAsn().
void ns3::QuaggaHelper::EnableBgp | ( | NodeContainer | nodes | ) |
Enable the bgpd daemon to the nodes.
nodes | The node(s) to enable BGP (quagga bgpd). |
Definition at line 702 of file quagga-helper.cc.
References ns3::BgpConfig::SetAsn().
void ns3::QuaggaHelper::EnableHomeAgentFlag | ( | Ptr< Node > | node, |
const char * | ifname | ||
) |
Configure HomeAgent Information Option (RFC 3775) in Router Advertisement to the zebra daemon (via ipv6 nd home-agent-config-flag).
ifname | The string of the interface name to enable this option. |
Definition at line 669 of file quagga-helper.cc.
void ns3::QuaggaHelper::EnableOspf | ( | NodeContainer | nodes, |
const char * | network | ||
) |
Enable the ospfd daemon to the nodes.
nodes | The node(s) to enable OSPFv2 (quagga ospfd). |
network | The network to enable ospf protocol. |
Definition at line 602 of file quagga-helper.cc.
void ns3::QuaggaHelper::EnableOspf6 | ( | NodeContainer | nodes, |
const char * | ifname | ||
) |
Enable the ospf6d daemon (OSPFv3) to the nodes.
nodes | The node(s) to enable OSPFv3 (quagga ospf6d). |
ifname | The interface to enable OSPFv3. |
Definition at line 745 of file quagga-helper.cc.
void ns3::QuaggaHelper::EnableOspf6Debug | ( | NodeContainer | nodes | ) |
Configure the debug option to the ospf6d daemon (via debug ospf6d xxx).
nodes | The node(s) to configure the options. |
Definition at line 764 of file quagga-helper.cc.
void ns3::QuaggaHelper::EnableOspfDebug | ( | NodeContainer | nodes | ) |
Configure the debug option to the ospfd daemon (via debug ospf xxx).
nodes | The node(s) to configure the options. |
Definition at line 619 of file quagga-helper.cc.
void ns3::QuaggaHelper::EnableRadvd | ( | Ptr< Node > | node, |
const char * | ifname, | ||
const char * | prefix | ||
) |
Enable Router Advertisement configuration to the zebra daemon (via no ipv6 nd suppress-ra xxx).
node | The node to configure the options. |
ifname | The string of the interface name to enable this option. |
prefix | The string of the network prefix to advertise. |
Definition at line 652 of file quagga-helper.cc.
void ns3::QuaggaHelper::EnableRip | ( | NodeContainer | nodes, |
const char * | ifname | ||
) |
Enable the ripd daemon (RIP v1/v2, RFC2453) to the nodes.
nodes | The node(s) to enable RIP (quagga ripd). |
ifname | The interface to enable RIP. |
Definition at line 781 of file quagga-helper.cc.
void ns3::QuaggaHelper::EnableRipDebug | ( | NodeContainer | nodes | ) |
Configure the debug option to the ripd daemon (via debug rip xxx).
nodes | The node(s) to configure the options. |
Definition at line 799 of file quagga-helper.cc.
void ns3::QuaggaHelper::EnableRipng | ( | NodeContainer | nodes, |
const char * | ifname | ||
) |
Enable the ripngd daemon (RIPng, RFC2080) to the nodes.
nodes | The node(s) to enable RIPng (quagga ripngd). |
ifname | The interface to enable RIPng. |
Definition at line 816 of file quagga-helper.cc.
void ns3::QuaggaHelper::EnableRipngDebug | ( | NodeContainer | nodes | ) |
Configure the debug option to the ripngd daemon (via debug ripng xxx).
nodes | The node(s) to configure the options. |
Definition at line 834 of file quagga-helper.cc.
void ns3::QuaggaHelper::EnableZebraDebug | ( | NodeContainer | nodes | ) |
Configure the debug option to the zebra daemon (via debug zebra xxx).
nodes | The node(s) to configure the options. |
Definition at line 636 of file quagga-helper.cc.
|
private |
Definition at line 942 of file quagga-helper.cc.
References ns3::BgpConfig::SetFilename().
Referenced by InstallPriv().
|
private |
Definition at line 912 of file quagga-helper.cc.
References ns3::OspfConfig::m_routerId.
Referenced by InstallPriv().
|
private |
Definition at line 969 of file quagga-helper.cc.
References ns3::Ospf6Config::SetFilename().
Referenced by InstallPriv().
|
private |
Definition at line 994 of file quagga-helper.cc.
References ns3::RipConfig::SetFilename().
Referenced by InstallPriv().
|
private |
Definition at line 1022 of file quagga-helper.cc.
References ns3::RipngConfig::SetFilename().
Referenced by InstallPriv().
|
private |
Definition at line 850 of file quagga-helper.cc.
References ns3::QuaggaConfig::SetFilename().
Referenced by InstallPriv().
uint32_t ns3::QuaggaHelper::GetAsn | ( | Ptr< Node > | node | ) |
Get the Autonomous System number (AS number) of the nodes.
node | The node to obtain ASN. |
Definition at line 719 of file quagga-helper.cc.
References ns3::BgpConfig::GetAsn().
ApplicationContainer ns3::QuaggaHelper::Install | ( | NodeContainer | nodes | ) |
Install a quagga application on each Node in the provided NodeContainer.
nodes | The NodeContainer containing all of the nodes to get a quagga application via ProcessManager. |
Definition at line 1063 of file quagga-helper.cc.
References InstallPriv().
ApplicationContainer ns3::QuaggaHelper::Install | ( | Ptr< Node > | node | ) |
Install a quagga application on the provided Node. The Node is specified directly by a Ptr<Node>
node | The node to install the QuaggaApplication on. |
Definition at line 1050 of file quagga-helper.cc.
References InstallPriv().
ApplicationContainer ns3::QuaggaHelper::Install | ( | std::string | nodeName | ) |
Install a quagga application on the provided Node. The Node is specified by a string that must have previosly been associated with a Node using the Object Name Service.
nodeName | The node to install the ProcessApplication on. |
Definition at line 1056 of file quagga-helper.cc.
References InstallPriv().
|
private |
Definition at line 1075 of file quagga-helper.cc.
References ns3::DceApplicationHelper::AddArguments(), GenerateConfigBgp(), GenerateConfigOspf(), GenerateConfigOspf6(), GenerateConfigRip(), GenerateConfigRipng(), GenerateConfigZebra(), ns3::DceApplicationHelper::Install(), ns3::DceApplicationHelper::ResetArguments(), ns3::DceApplicationHelper::SetBinary(), and ns3::DceApplicationHelper::SetStackSize().
Referenced by Install().
void ns3::QuaggaHelper::SetAttribute | ( | std::string | name, |
const AttributeValue & | value | ||
) |
Configure ping applications attribute.
name | attribute's name |
value | attribute's value |
Definition at line 596 of file quagga-helper.cc.
void ns3::QuaggaHelper::UseManualZebraConfig | ( | NodeContainer | nodes | ) |
Indicate the config file to edit by manually (locate zebra.conf at files-X/usr/local/etc/zebra.conf).
nodes | The node(s) to configure the options. |
Definition at line 684 of file quagga-helper.cc.