ns-3 Direct Code Execution
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ns3::QuaggaHelper Class Reference

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)

Detailed Description

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.

Constructor & Destructor Documentation

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.

Member Function Documentation

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).

Parameters
neighborThe string of the experssion of a remote neighbor (IPv4/v6 address).
asnThe AS number of the remote neighbor.

Definition at line 730 of file quagga-helper.cc.

References ns3::BgpConfig::SetAsn().

+ Here is the call graph for this function:

void ns3::QuaggaHelper::EnableBgp ( NodeContainer  nodes)

Enable the bgpd daemon to the nodes.

Parameters
nodesThe node(s) to enable BGP (quagga bgpd).

Definition at line 702 of file quagga-helper.cc.

References ns3::BgpConfig::SetAsn().

+ Here is the call graph for this function:

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).

Parameters
ifnameThe 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.

Parameters
nodesThe node(s) to enable OSPFv2 (quagga ospfd).
networkThe 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.

Parameters
nodesThe node(s) to enable OSPFv3 (quagga ospf6d).
ifnameThe 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).

Parameters
nodesThe 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).

Parameters
nodesThe 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).

Parameters
nodeThe node to configure the options.
ifnameThe string of the interface name to enable this option.
prefixThe 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.

Parameters
nodesThe node(s) to enable RIP (quagga ripd).
ifnameThe 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).

Parameters
nodesThe 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.

Parameters
nodesThe node(s) to enable RIPng (quagga ripngd).
ifnameThe 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).

Parameters
nodesThe 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).

Parameters
nodesThe node(s) to configure the options.

Definition at line 636 of file quagga-helper.cc.

void ns3::QuaggaHelper::GenerateConfigBgp ( Ptr< Node >  node)
private

Definition at line 942 of file quagga-helper.cc.

References ns3::BgpConfig::SetFilename().

Referenced by InstallPriv().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::QuaggaHelper::GenerateConfigOspf ( Ptr< Node >  node)
private

Definition at line 912 of file quagga-helper.cc.

References ns3::OspfConfig::m_routerId.

Referenced by InstallPriv().

+ Here is the caller graph for this function:

void ns3::QuaggaHelper::GenerateConfigOspf6 ( Ptr< Node >  node)
private

Definition at line 969 of file quagga-helper.cc.

References ns3::Ospf6Config::SetFilename().

Referenced by InstallPriv().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::QuaggaHelper::GenerateConfigRip ( Ptr< Node >  node)
private

Definition at line 994 of file quagga-helper.cc.

References ns3::RipConfig::SetFilename().

Referenced by InstallPriv().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::QuaggaHelper::GenerateConfigRipng ( Ptr< Node >  node)
private

Definition at line 1022 of file quagga-helper.cc.

References ns3::RipngConfig::SetFilename().

Referenced by InstallPriv().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::QuaggaHelper::GenerateConfigZebra ( Ptr< Node >  node)
private

Definition at line 850 of file quagga-helper.cc.

References ns3::QuaggaConfig::SetFilename().

Referenced by InstallPriv().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint32_t ns3::QuaggaHelper::GetAsn ( Ptr< Node >  node)

Get the Autonomous System number (AS number) of the nodes.

Parameters
nodeThe node to obtain ASN.

Definition at line 719 of file quagga-helper.cc.

References ns3::BgpConfig::GetAsn().

+ Here is the call graph for this function:

ApplicationContainer ns3::QuaggaHelper::Install ( NodeContainer  nodes)

Install a quagga application on each Node in the provided NodeContainer.

Parameters
nodesThe NodeContainer containing all of the nodes to get a quagga application via ProcessManager.
Returns
A list of quagga applications, one for each input node

Definition at line 1063 of file quagga-helper.cc.

References InstallPriv().

+ Here is the call graph for this function:

ApplicationContainer ns3::QuaggaHelper::Install ( Ptr< Node >  node)

Install a quagga application on the provided Node. The Node is specified directly by a Ptr<Node>

Parameters
nodeThe node to install the QuaggaApplication on.
Returns
An ApplicationContainer holding the quagga application created.

Definition at line 1050 of file quagga-helper.cc.

References InstallPriv().

+ Here is the call graph for this function:

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.

Parameters
nodeNameThe node to install the ProcessApplication on.
Returns
An ApplicationContainer holding the quagga application created.

Definition at line 1056 of file quagga-helper.cc.

References InstallPriv().

+ Here is the call graph for this function:

ApplicationContainer ns3::QuaggaHelper::InstallPriv ( Ptr< Node >  node)
private
void ns3::QuaggaHelper::SetAttribute ( std::string  name,
const AttributeValue &  value 
)

Configure ping applications attribute.

Parameters
nameattribute's name
valueattribute'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).

Parameters
nodesThe node(s) to configure the options.

Definition at line 684 of file quagga-helper.cc.


The documentation for this class was generated from the following files: