A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::PlanetLabFdNetDeviceHelper Class Reference

build a set of FdNetDevice objects attached to a virtual TAP network interface More...

#include <planetlab-fd-net-device-helper.h>

+ Inheritance diagram for ns3::PlanetLabFdNetDeviceHelper:
+ Collaboration diagram for ns3::PlanetLabFdNetDeviceHelper:

Public Member Functions

 PlanetLabFdNetDeviceHelper ()
virtual ~PlanetLabFdNetDeviceHelper ()
void SetTapIpAddress (Ipv4Address address)
void SetTapMask (Ipv4Mask mask)
- Public Member Functions inherited from ns3::EmuFdNetDeviceHelper
 EmuFdNetDeviceHelper ()
virtual ~EmuFdNetDeviceHelper ()
std::string GetDeviceName (void)
void SetDeviceName (std::string deviceName)
- Public Member Functions inherited from ns3::FdNetDeviceHelper
 FdNetDeviceHelper ()
virtual ~FdNetDeviceHelper ()
virtual NetDeviceContainer Install (Ptr< Node > node) const
virtual NetDeviceContainer Install (std::string name) const
virtual NetDeviceContainer Install (const NodeContainer &c) const
void SetAttribute (std::string n1, const AttributeValue &v1)
- Public Member Functions inherited from ns3::PcapHelperForDevice
 PcapHelperForDevice ()
 Construct a PcapHelperForDevice.
virtual ~PcapHelperForDevice ()
 Destroy a PcapHelperForDevice.
void EnablePcap (std::string prefix, Ptr< NetDevice > nd, bool promiscuous=false, bool explicitFilename=false)
 Enable pcap output the indicated net device.
void EnablePcap (std::string prefix, std::string ndName, bool promiscuous=false, bool explicitFilename=false)
 Enable pcap output the indicated net device using a device previously named using the ns-3 object name service.
void EnablePcap (std::string prefix, NetDeviceContainer d, bool promiscuous=false)
 Enable pcap output on each device in the container which is of the appropriate type.
void EnablePcap (std::string prefix, NodeContainer n, bool promiscuous=false)
 Enable pcap output on each device (which is of the appropriate type) in the nodes provided in the container.
void EnablePcap (std::string prefix, uint32_t nodeid, uint32_t deviceid, bool promiscuous=false)
 Enable pcap output on the device specified by a global node-id (of a previously created node) and associated device-id.
void EnablePcapAll (std::string prefix, bool promiscuous=false)
 Enable pcap output on each device (which is of the appropriate type) in the set of all nodes created in the simulation.
virtual void EnablePcapInternal (std::string prefix, Ptr< NetDevice > nd, bool promiscuous, bool explicitFilename)=0
 Enable pcap output the indicated net device.
- Public Member Functions inherited from ns3::AsciiTraceHelperForDevice
 AsciiTraceHelperForDevice ()
 Construct an AsciiTraceHelperForDevice.
virtual ~AsciiTraceHelperForDevice ()
 Destroy an AsciiTraceHelperForDevice.
void EnableAscii (std::string prefix, Ptr< NetDevice > nd, bool explicitFilename=false)
 Enable ascii trace output on the indicated net device.
void EnableAscii (Ptr< OutputStreamWrapper > stream, Ptr< NetDevice > nd)
 Enable ascii trace output on the indicated net device.
void EnableAscii (std::string prefix, std::string ndName, bool explicitFilename=false)
 Enable ascii trace output the indicated net device using a device previously named using the ns-3 object name service.
void EnableAscii (Ptr< OutputStreamWrapper > stream, std::string ndName)
 Enable ascii trace output the indicated net device using a device previously named using the ns-3 object name service.
void EnableAscii (std::string prefix, NetDeviceContainer d)
 Enable ascii trace output on each device in the container which is of the appropriate type.
void EnableAscii (Ptr< OutputStreamWrapper > stream, NetDeviceContainer d)
 Enable ascii trace output on each device in the container which is of the appropriate type.
void EnableAscii (std::string prefix, NodeContainer n)
 Enable ascii trace output on each device (which is of the appropriate type) in the nodes provided in the container.
void EnableAscii (Ptr< OutputStreamWrapper > stream, NodeContainer n)
 Enable ascii trace output on each device (which is of the appropriate type) in the nodes provided in the container.
void EnableAscii (std::string prefix, uint32_t nodeid, uint32_t deviceid, bool explicitFilename)
 Enable ascii trace output on the device specified by a global node-id (of a previously created node) and associated device-id.
void EnableAscii (Ptr< OutputStreamWrapper > stream, uint32_t nodeid, uint32_t deviceid)
 Enable ascii trace output on the device specified by a global node-id (of a previously created node) and associated device-id.
void EnableAsciiAll (std::string prefix)
 Enable ascii trace output on each device (which is of the appropriate type) in the set of all nodes created in the simulation.
void EnableAsciiAll (Ptr< OutputStreamWrapper > stream)
 Enable ascii trace output on each device (which is of the appropriate type) in the set of all nodes created in the simulation.
virtual void EnableAsciiInternal (Ptr< OutputStreamWrapper > stream, std::string prefix, Ptr< NetDevice > nd, bool explicitFilename)=0
 Enable ascii trace output on the indicated net device.

Protected Member Functions

virtual int CreateFileDescriptor (void) const
Ptr< NetDeviceInstallPriv (Ptr< Node > node) const
virtual void SetFileDescriptor (Ptr< FdNetDevice > device) const

Protected Attributes

Ipv4Address m_tapIp
Ipv4Mask m_tapMask
- Protected Attributes inherited from ns3::EmuFdNetDeviceHelper
std::string m_deviceName

Detailed Description

build a set of FdNetDevice objects attached to a virtual TAP network interface

Definition at line 43 of file planetlab-fd-net-device-helper.h.

Constructor & Destructor Documentation

ns3::PlanetLabFdNetDeviceHelper::PlanetLabFdNetDeviceHelper ( )

Construct a PlanetLabFdNetDeviceHelper.

Definition at line 67 of file planetlab-fd-net-device-helper.cc.

References m_tapIp, and m_tapMask.

virtual ns3::PlanetLabFdNetDeviceHelper::~PlanetLabFdNetDeviceHelper ( )
inlinevirtual

Definition at line 50 of file planetlab-fd-net-device-helper.h.

Member Function Documentation

int ns3::PlanetLabFdNetDeviceHelper::CreateFileDescriptor ( void  ) const
protectedvirtual

Call out to a separate process running as suid root in order to create a TAP device and obtain the file descriptor associated to it.

Reimplemented from ns3::EmuFdNetDeviceHelper.

Definition at line 120 of file planetlab-fd-net-device-helper.cc.

References ns3::BufferToString(), ns3::Ipv4Mask::GetPrefixLength(), m_tapIp, m_tapMask, NS_ABORT_MSG_IF, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_INFO, and PLANETLAB_MAGIC.

Referenced by SetFileDescriptor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Ptr< NetDevice > ns3::PlanetLabFdNetDeviceHelper::InstallPriv ( Ptr< Node node) const
protectedvirtual

Reimplemented from ns3::EmuFdNetDeviceHelper.

Definition at line 86 of file planetlab-fd-net-device-helper.cc.

References ns3::FdNetDevice::DIXPI, ns3::Object::GetObject(), ns3::FdNetDevice::SetEncapsulationMode(), and SetFileDescriptor().

+ Here is the call graph for this function:

void ns3::PlanetLabFdNetDeviceHelper::SetFileDescriptor ( Ptr< FdNetDevice device) const
protectedvirtual

Sets a file descriptor on the FileDescriptorNetDevice.

Reimplemented from ns3::EmuFdNetDeviceHelper.

Definition at line 107 of file planetlab-fd-net-device-helper.cc.

References CreateFileDescriptor(), and NS_LOG_LOGIC.

Referenced by InstallPriv().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::PlanetLabFdNetDeviceHelper::SetTapIpAddress ( Ipv4Address  address)

Set the device IPv4 address.

Parameters
addressThe IPv4 address for the TAP device.

Definition at line 74 of file planetlab-fd-net-device-helper.cc.

References m_tapIp.

Referenced by main().

+ Here is the caller graph for this function:

void ns3::PlanetLabFdNetDeviceHelper::SetTapMask ( Ipv4Mask  mask)

Set the network mask for the TAP device.

Parameters
maskThe network mask for the TAP device.

Definition at line 80 of file planetlab-fd-net-device-helper.cc.

References m_tapMask.

Referenced by main().

+ Here is the caller graph for this function:

Member Data Documentation

Ipv4Address ns3::PlanetLabFdNetDeviceHelper::m_tapIp
protected

The IP address for the TAP device.

Definition at line 90 of file planetlab-fd-net-device-helper.h.

Referenced by CreateFileDescriptor(), PlanetLabFdNetDeviceHelper(), and SetTapIpAddress().

Ipv4Mask ns3::PlanetLabFdNetDeviceHelper::m_tapMask
protected

The network mask for the TAP device.

Definition at line 97 of file planetlab-fd-net-device-helper.h.

Referenced by CreateFileDescriptor(), PlanetLabFdNetDeviceHelper(), and SetTapMask().


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