A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::NetmapNetDeviceHelper Class Reference

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

#include "netmap-net-device-helper.h"

+ Inheritance diagram for ns3::NetmapNetDeviceHelper:
+ Collaboration diagram for ns3::NetmapNetDeviceHelper:

Public Member Functions

 NetmapNetDeviceHelper ()
 
virtual ~NetmapNetDeviceHelper ()
 
std::string GetDeviceName ()
 Get the device name of this device.
 
void SetDeviceName (std::string deviceName)
 Set the device name of this device.
 
- Public Member Functions inherited from ns3::FdNetDeviceHelper
 FdNetDeviceHelper ()
 Construct a FdNetDeviceHelper.
 
 ~FdNetDeviceHelper () override
 
virtual NetDeviceContainer Install (const NodeContainer &c) const
 This method creates a FdNetDevice and associates it to a node.
 
virtual NetDeviceContainer Install (Ptr< Node > node) const
 This method creates a FdNetDevice and associates it to a node.
 
virtual NetDeviceContainer Install (std::string name) const
 This method creates a FdNetDevice and associates it to a node.
 
void SetAttribute (std::string n1, const AttributeValue &v1)
 
void SetTypeId (std::string type)
 Set the TypeId of the Objects to be created by this helper.
 
- Public Member Functions inherited from ns3::PcapHelperForDevice
 PcapHelperForDevice ()
 Construct a PcapHelperForDevice.
 
virtual ~PcapHelperForDevice ()
 Destroy a PcapHelperForDevice.
 
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, 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, 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 (Ptr< OutputStreamWrapper > stream, NetDeviceContainer d)
 Enable ascii trace output on each device in the container which is of the appropriate type.
 
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 (Ptr< OutputStreamWrapper > stream, Ptr< NetDevice > nd)
 Enable ascii trace output on the indicated net device.
 
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 (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 EnableAscii (std::string prefix, 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 (std::string prefix, Ptr< NetDevice > nd, bool explicitFilename=false)
 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 (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 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.
 
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.
 
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 () const
 Call out to a separate process running as suid root in order to get a raw socket.
 
Ptr< NetDeviceInstallPriv (Ptr< Node > node) const
 This method creates an ns3::FdNetDevice attached to a physical network interface.
 
virtual void SetDeviceAttributes (Ptr< FdNetDevice > device) const
 Sets device flags and MTU.
 
void SwitchInNetmapMode (int fd, Ptr< NetmapNetDevice > device) const
 Switch the fd in netmap mode.
 
virtual Ptr< NetDeviceInstallPriv (Ptr< Node > node) const
 This method creates an ns3::FdNetDevice and associates it to a node.
 

Protected Attributes

std::string m_deviceName
 The unix/linux name of the underlying device (e.g., eth0)
 

Detailed Description

build a set of FdNetDevice objects attached to a physical network interface

Definition at line 45 of file netmap-net-device-helper.h.

Constructor & Destructor Documentation

◆ NetmapNetDeviceHelper()

ns3::NetmapNetDeviceHelper::NetmapNetDeviceHelper ( )

Definition at line 65 of file netmap-net-device-helper.cc.

References m_deviceName, and ns3::FdNetDeviceHelper::SetTypeId().

+ Here is the call graph for this function:

◆ ~NetmapNetDeviceHelper()

virtual ns3::NetmapNetDeviceHelper::~NetmapNetDeviceHelper ( )
inlinevirtual

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

Member Function Documentation

◆ CreateFileDescriptor()

int ns3::NetmapNetDeviceHelper::CreateFileDescriptor ( ) const
protectedvirtual

Call out to a separate process running as suid root in order to get a raw socket.

We do this to avoid having the entire simulation running as root.

Returns
the rawSocket number

Definition at line 198 of file netmap-net-device-helper.cc.

References ns3::BufferToString(), EMU_MAGIC, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, and NS_LOG_INFO.

Referenced by InstallPriv().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetDeviceName()

std::string ns3::NetmapNetDeviceHelper::GetDeviceName ( )

Get the device name of this device.

Returns
The device name of this device.

Definition at line 72 of file netmap-net-device-helper.cc.

References m_deviceName.

◆ InstallPriv()

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

This method creates an ns3::FdNetDevice attached to a physical network interface.

Parameters
nodeThe node to install the device in
Returns
A container holding the added net device.

Reimplemented from ns3::FdNetDeviceHelper.

Definition at line 84 of file netmap-net-device-helper.cc.

References CreateFileDescriptor(), ns3::NetDeviceQueueLock::GetTypeId(), ns3::FdNetDeviceHelper::InstallPriv(), SetDeviceAttributes(), and SwitchInNetmapMode().

+ Here is the call graph for this function:

◆ SetDeviceAttributes()

void ns3::NetmapNetDeviceHelper::SetDeviceAttributes ( Ptr< FdNetDevice device) const
protectedvirtual

Sets device flags and MTU.

Parameters
devicethe FdNetDevice

Definition at line 109 of file netmap-net-device-helper.cc.

References m_deviceName, NS_FATAL_ERROR, NS_LOG_DEBUG, and NS_LOG_LOGIC.

Referenced by InstallPriv().

+ Here is the caller graph for this function:

◆ SetDeviceName()

void ns3::NetmapNetDeviceHelper::SetDeviceName ( std::string  deviceName)

Set the device name of this device.

Parameters
deviceNameThe device name of this device.

Definition at line 78 of file netmap-net-device-helper.cc.

References m_deviceName.

◆ SwitchInNetmapMode()

void ns3::NetmapNetDeviceHelper::SwitchInNetmapMode ( int  fd,
Ptr< NetmapNetDevice device 
) const
protected

Switch the fd in netmap mode.

Parameters
fdthe file descriptor
devicethe NetmapNetDevice

Definition at line 430 of file netmap-net-device-helper.cc.

References m_deviceName, NS_ASSERT, NS_FATAL_ERROR, and NS_LOG_FUNCTION.

Referenced by InstallPriv().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_deviceName

std::string ns3::NetmapNetDeviceHelper::m_deviceName
protected

The unix/linux name of the underlying device (e.g., eth0)

Definition at line 95 of file netmap-net-device-helper.h.

Referenced by NetmapNetDeviceHelper(), GetDeviceName(), SetDeviceAttributes(), SetDeviceName(), and SwitchInNetmapMode().


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