build a set of CsmaNetDevice objects More...
#include <csma-helper.h>
Public Member Functions | |
CsmaHelper () | |
void | SetQueue (std::string type, std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue()) |
void | SetDeviceAttribute (std::string n1, const AttributeValue &v1) |
void | SetChannelAttribute (std::string n1, const AttributeValue &v1) |
void | SetDeviceParameter (std::string n1, const AttributeValue &v1) NS_DEPRECATED |
void | SetChannelParameter (std::string n1, const AttributeValue &v1) NS_DEPRECATED |
NetDeviceContainer | Install (Ptr< Node > node) const |
NetDeviceContainer | Install (Ptr< Node > node, Ptr< CsmaChannel > channel) const |
NetDeviceContainer | Install (const NodeContainer &c) const |
NetDeviceContainer | Install (const NodeContainer &c, Ptr< CsmaChannel > channel) const |
void | InstallStar (Ptr< Node > hub, NodeContainer spokes, NetDeviceContainer &hubDevices, NetDeviceContainer &spokeDevices) |
Make a star network topology. | |
Static Public Member Functions | |
static void | EnablePcap (std::string filename, uint32_t nodeid, uint32_t deviceid) |
static void | EnablePcap (std::string filename, NetDeviceContainer d) |
static void | EnablePcap (std::string filename, NodeContainer n) |
static void | EnablePcapAll (std::string filename) |
static void | EnableAscii (std::ostream &os, uint32_t nodeid, uint32_t deviceid) |
static void | EnableAscii (std::ostream &os, NetDeviceContainer d) |
static void | EnableAscii (std::ostream &os, NodeContainer n) |
static void | EnableAsciiAll (std::ostream &os) |
Private Member Functions | |
Ptr< NetDevice > | InstallPriv (Ptr< Node > node, Ptr< CsmaChannel > channel) const |
Static Private Member Functions | |
static void | RxEvent (Ptr< PcapWriter > writer, Ptr< const Packet > packet) |
static void | EnqueueEvent (Ptr< PcapWriter > writer, Ptr< const Packet > packet) |
static void | AsciiEnqueueEvent (std::ostream *os, std::string path, Ptr< const Packet > packet) |
static void | AsciiDequeueEvent (std::ostream *os, std::string path, Ptr< const Packet > packet) |
static void | AsciiDropEvent (std::ostream *os, std::string path, Ptr< const Packet > packet) |
static void | AsciiRxEvent (std::ostream *os, std::string path, Ptr< const Packet > packet) |
Private Attributes | |
ObjectFactory | m_queueFactory |
ObjectFactory | m_deviceFactory |
ObjectFactory | m_channelFactory |
build a set of CsmaNetDevice objects
Definition at line 40 of file csma-helper.h.
ns3::CsmaHelper::CsmaHelper | ( | ) |
Definition at line 23 of file csma-helper.cc.
Referenced by SetQueue().
void ns3::CsmaHelper::AsciiDequeueEvent | ( | std::ostream * | os, | |
std::string | path, | |||
Ptr< const Packet > | packet | |||
) | [static, private] |
Definition at line 244 of file csma-helper.cc.
void ns3::CsmaHelper::AsciiDropEvent | ( | std::ostream * | os, | |
std::string | path, | |||
Ptr< const Packet > | packet | |||
) | [static, private] |
Definition at line 251 of file csma-helper.cc.
void ns3::CsmaHelper::AsciiEnqueueEvent | ( | std::ostream * | os, | |
std::string | path, | |||
Ptr< const Packet > | packet | |||
) | [static, private] |
Definition at line 237 of file csma-helper.cc.
void ns3::CsmaHelper::AsciiRxEvent | ( | std::ostream * | os, | |
std::string | path, | |||
Ptr< const Packet > | packet | |||
) | [static, private] |
Definition at line 258 of file csma-helper.cc.
void ns3::CsmaHelper::EnableAscii | ( | std::ostream & | os, | |
NodeContainer | n | |||
) | [static] |
os | output stream | |
n | node container |
Enable ascii output on each device which is of the ns3::CsmaNetDevice type and which is located in one of the input node and dump that to the specified stdc++ output stream.
Definition at line 146 of file csma-helper.cc.
References ns3::NetDeviceContainer::Begin(), EnableAscii(), and ns3::NetDeviceContainer::End().
void ns3::CsmaHelper::EnableAscii | ( | std::ostream & | os, | |
NetDeviceContainer | d | |||
) | [static] |
os | output stream | |
d | device container |
Enable ascii output on each device which is of the ns3::CsmaNetDevice type and which is located in the input device container and dump that to the specified stdc++ output stream.
Definition at line 137 of file csma-helper.cc.
void ns3::CsmaHelper::EnableAscii | ( | std::ostream & | os, | |
uint32_t | nodeid, | |||
uint32_t | deviceid | |||
) | [static] |
os | output stream | |
nodeid | the id of the node to generate ascii output for. | |
deviceid | the id of the device to generate ascii output for. |
Enable ascii output on the specified deviceid within the specified nodeid if it is of type ns3::CsmaNetDevice and dump that to the specified stdc++ output stream.
Definition at line 120 of file csma-helper.cc.
Referenced by EnableAscii().
void ns3::CsmaHelper::EnableAsciiAll | ( | std::ostream & | os | ) | [static] |
os | output stream |
Enable ascii output on each device which is of the ns3::CsmaNetDevice type and dump that to the specified stdc++ output stream.
Definition at line 161 of file csma-helper.cc.
References ns3::NetDeviceContainer::Add().
void ns3::CsmaHelper::EnablePcap | ( | std::string | filename, | |
NodeContainer | n | |||
) | [static] |
filename | filename prefix to use for pcap files. | |
n | container of nodes. |
Enable pcap output on each device which is of the ns3::CsmaNetDevice type and which is located in one of the input nodes.
Definition at line 99 of file csma-helper.cc.
References ns3::NetDeviceContainer::Begin(), EnablePcap(), and ns3::NetDeviceContainer::End().
void ns3::CsmaHelper::EnablePcap | ( | std::string | filename, | |
NetDeviceContainer | d | |||
) | [static] |
filename | filename prefix to use for pcap files. | |
d | container of devices of type ns3::CsmaNetDevice |
Enable pcap output on each input device which is of the ns3::CsmaNetDevice type.
Definition at line 90 of file csma-helper.cc.
void ns3::CsmaHelper::EnablePcap | ( | std::string | filename, | |
uint32_t | nodeid, | |||
uint32_t | deviceid | |||
) | [static] |
filename | filename prefix to use for pcap files. | |
nodeid | the id of the node to generate pcap output for. | |
deviceid | the id of the device to generate pcap output for. |
Generate a pcap file which contains the link-level data observed by the specified deviceid within the specified nodeid. The pcap data is stored in the file prefix-nodeid-deviceid.pcap.
This method should be invoked after the network topology has been fully constructed.
Definition at line 68 of file csma-helper.cc.
References SetDeviceAttribute().
Referenced by EnablePcap().
void ns3::CsmaHelper::EnablePcapAll | ( | std::string | filename | ) | [static] |
filename | filename prefix to use for pcap files. |
Enable pcap output on each device which is of the ns3::CsmaNetDevice type
Definition at line 114 of file csma-helper.cc.
References ns3::NetDeviceContainer::Add().
void ns3::CsmaHelper::EnqueueEvent | ( | Ptr< PcapWriter > | writer, | |
Ptr< const Packet > | packet | |||
) | [static, private] |
Definition at line 227 of file csma-helper.cc.
References ns3::NetDeviceContainer::Add(), ns3::NodeContainer::Get(), and Install().
NetDeviceContainer ns3::CsmaHelper::Install | ( | const NodeContainer & | c, | |
Ptr< CsmaChannel > | channel | |||
) | const |
For each Ptr<node> in the provided container, this method creates an ns3::CsmaNetDevice (with the attributes configured by CsmaHelper::SetDeviceAttribute); adds the device to the node; and attaches the provided channel to the device.
c | The NodeContainer holding the nodes to be changed. | |
channel | The channel to attach to the devices. |
Definition at line 188 of file csma-helper.cc.
References ns3::ObjectFactory::Create(), Install(), and m_channelFactory.
NetDeviceContainer ns3::CsmaHelper::Install | ( | const NodeContainer & | c | ) | const |
This method creates an ns3::CsmaChannel with the attributes configured by CsmaHelper::SetChannelAttribute. For each Ptr<node> in the provided container: it creates an ns3::CsmaNetDevice (with the attributes configured by CsmaHelper::SetDeviceAttribute); adds the device to the node; and attaches the channel to the device.
c | The NodeContainer holding the nodes to be changed. |
Definition at line 180 of file csma-helper.cc.
NetDeviceContainer ns3::CsmaHelper::Install | ( | Ptr< Node > | node, | |
Ptr< CsmaChannel > | channel | |||
) | const |
This method creates an ns3::CsmaNetDevice with the attributes configured by CsmaHelper::SetDeviceAttribute and then adds the device to the node and attaches the provided channel to the device.
node | The node to install the device in | |
channel | The chanel to attach to the device. |
Definition at line 174 of file csma-helper.cc.
NetDeviceContainer ns3::CsmaHelper::Install | ( | Ptr< Node > | node | ) | const |
This method creates an ns3::CsmaChannel with the attributes configured by CsmaHelper::SetChannelAttribute, an ns3::CsmaNetDevice with the attributes configured by CsmaHelper::SetDeviceAttribute and then adds the device to the node and attaches the channel to the device.
node | The node to install the device in |
Definition at line 167 of file csma-helper.cc.
Referenced by EnqueueEvent(), and Install().
Ptr< NetDevice > ns3::CsmaHelper::InstallPriv | ( | Ptr< Node > | node, | |
Ptr< CsmaChannel > | channel | |||
) | const [private] |
Definition at line 201 of file csma-helper.cc.
References ns3::NetDeviceContainer::Add().
void ns3::CsmaHelper::InstallStar | ( | Ptr< Node > | hub, | |
NodeContainer | spokes, | |||
NetDeviceContainer & | hubDevices, | |||
NetDeviceContainer & | spokeDevices | |||
) |
Make a star network topology.
Given a pointer to a node that will become the hub of the star, and a NodeContainer containing pointers to the nodes that will become the spokes; we construct CSMA net devices on the hub (corresponding to the spokes) and store them in the hubDevices NetDeviceContainer. We add a net device to each spoke node and store them in the spokeDevices NetDeviceContainer. A CSMA is created for each spoke.
Usually when one thinks of a star network, one thinks of point-to-point links. We're just using a single pair of devices on a multi-point-to-point network "drops" as the link. You are free to add any number of other devices on the link if you want.
The ordering of the devices in the hubDevices container is according to the order of the spokes container -- that is, hubDevices[0] will be the net device used on the hub that talks to spokes[0]. the container entry spokeDevices[0] will have the device that hubDevices[0] talks to -- those two devices are the ones that connect hub to spokes[0].
hub | The central node of the star network | |
spokes | A NodeContainer of the nodes that will be the spoke (leaf) nodes | |
hubDevices | A NetDeviceContainer that will be filled with pointers to the point-to-point net devices created on the hub. | |
spokeDevices | A NetDeviceContainer that will be filled with pointers to the point-to-point net devices created on each of the spokes. |
Definition at line 214 of file csma-helper.cc.
void ns3::CsmaHelper::RxEvent | ( | Ptr< PcapWriter > | writer, | |
Ptr< const Packet > | packet | |||
) | [static, private] |
Definition at line 232 of file csma-helper.cc.
void ns3::CsmaHelper::SetChannelAttribute | ( | std::string | n1, | |
const AttributeValue & | v1 | |||
) |
n1 | the name of the attribute to set | |
v1 | the value of the attribute to set |
Set these attributes on each ns3::CsmaChannel created by CsmaHelper::Install
Definition at line 51 of file csma-helper.cc.
void ns3::CsmaHelper::SetChannelParameter | ( | std::string | n1, | |
const AttributeValue & | v1 | |||
) |
Definition at line 62 of file csma-helper.cc.
References m_channelFactory, and ns3::ObjectFactory::Set().
void ns3::CsmaHelper::SetDeviceAttribute | ( | std::string | n1, | |
const AttributeValue & | v1 | |||
) |
n1 | the name of the attribute to set | |
v1 | the value of the attribute to set |
Set these attributes on each ns3::CsmaNetDevice created by CsmaHelper::Install
Definition at line 45 of file csma-helper.cc.
References m_queueFactory, ns3::ObjectFactory::Set(), and ns3::ObjectFactory::SetTypeId().
Referenced by EnablePcap().
void ns3::CsmaHelper::SetDeviceParameter | ( | std::string | n1, | |
const AttributeValue & | v1 | |||
) |
Definition at line 57 of file csma-helper.cc.
void ns3::CsmaHelper::SetQueue | ( | std::string | type, | |
std::string | n1 = "" , |
|||
const AttributeValue & | v1 = EmptyAttributeValue () , |
|||
std::string | n2 = "" , |
|||
const AttributeValue & | v2 = EmptyAttributeValue () , |
|||
std::string | n3 = "" , |
|||
const AttributeValue & | v3 = EmptyAttributeValue () , |
|||
std::string | n4 = "" , |
|||
const AttributeValue & | v4 = EmptyAttributeValue () | |||
) |
type | the type of queue | |
n1 | the name of the attribute to set on the queue | |
v1 | the value of the attribute to set on the queue | |
n2 | the name of the attribute to set on the queue | |
v2 | the value of the attribute to set on the queue | |
n3 | the name of the attribute to set on the queue | |
v3 | the value of the attribute to set on the queue | |
n4 | the name of the attribute to set on the queue | |
v4 | the value of the attribute to set on the queue |
Set the type of queue to create and associated to each CsmaNetDevice created through CsmaHelper::Install.
Definition at line 31 of file csma-helper.cc.
References CsmaHelper(), m_channelFactory, m_deviceFactory, m_queueFactory, and ns3::ObjectFactory::SetTypeId().
Definition at line 253 of file csma-helper.h.
Referenced by Install(), SetChannelParameter(), and SetQueue().
Definition at line 252 of file csma-helper.h.
Referenced by SetQueue().
ObjectFactory ns3::CsmaHelper::m_queueFactory [private] |
Definition at line 251 of file csma-helper.h.
Referenced by SetDeviceAttribute(), and SetQueue().