src/devices/csma/csma-ipv4-topology.cc
changeset 2592 3ebf97150166
parent 2533 80cdc3eec057
child 2600 6c389d0c717d
equal deleted inserted replaced
2591:83a605082fb6 2592:3ebf97150166
    39 CsmaIpv4Topology::AddIpv4CsmaNetDevice(
    39 CsmaIpv4Topology::AddIpv4CsmaNetDevice(
    40   Ptr<Node> node,
    40   Ptr<Node> node,
    41   Ptr<CsmaChannel> channel,
    41   Ptr<CsmaChannel> channel,
    42   Mac48Address addr)
    42   Mac48Address addr)
    43 {
    43 {
    44   Ptr<Queue> q = CreateObjectWith<DropTailQueue> ();
    44   Ptr<Queue> q = CreateObject<DropTailQueue> ();
    45 
    45 
    46   // assume full-duplex
    46   // assume full-duplex
    47   Ptr<CsmaNetDevice> nd = CreateObjectWith<CsmaNetDevice> ("Node", node, 
    47   Ptr<CsmaNetDevice> nd = CreateObject<CsmaNetDevice> ("Node", node, 
    48                                                            "Address", addr, 
    48                                                            "Address", addr, 
    49                                                            "EncapsulationMode", String ("IpArp"));
    49                                                            "EncapsulationMode", String ("IpArp"));
    50   node->AddDevice (nd);
    50   node->AddDevice (nd);
    51 
    51 
    52   nd->AddQueue(q);
    52   nd->AddQueue(q);
    58 void
    58 void
    59 CsmaIpv4Topology::AddIpv4LlcCsmaNode(Ptr<Node> n1,
    59 CsmaIpv4Topology::AddIpv4LlcCsmaNode(Ptr<Node> n1,
    60                                      Ptr<CsmaChannel> ch,
    60                                      Ptr<CsmaChannel> ch,
    61                                      Mac48Address addr)
    61                                      Mac48Address addr)
    62 {
    62 {
    63   Ptr<Queue> q = CreateObjectWith<DropTailQueue> ();
    63   Ptr<Queue> q = CreateObject<DropTailQueue> ();
    64 
    64 
    65   Ptr<CsmaNetDevice> nd0 = CreateObjectWith<CsmaNetDevice> ("Node", n1, 
    65   Ptr<CsmaNetDevice> nd0 = CreateObject<CsmaNetDevice> ("Node", n1, 
    66                                                             "Address", addr,
    66                                                             "Address", addr,
    67                                                             "EncapsulationMode", String ("Llc"));
    67                                                             "EncapsulationMode", String ("Llc"));
    68   n1->AddDevice (nd0);
    68   n1->AddDevice (nd0);
    69   nd0->SetSendEnable (true);
    69   nd0->SetSendEnable (true);
    70   nd0->SetReceiveEnable (false);
    70   nd0->SetReceiveEnable (false);
    71   nd0->AddQueue(q);
    71   nd0->AddQueue(q);
    72   nd0->Attach (ch);
    72   nd0->Attach (ch);
    73 
    73 
    74   Ptr<CsmaNetDevice> nd1 = CreateObjectWith<CsmaNetDevice> ("Node", n1, 
    74   Ptr<CsmaNetDevice> nd1 = CreateObject<CsmaNetDevice> ("Node", n1, 
    75                                                             "Address", addr,
    75                                                             "Address", addr,
    76                                                             "EncapsulationMode", String ("Llc"));
    76                                                             "EncapsulationMode", String ("Llc"));
    77   n1->AddDevice (nd1);
    77   n1->AddDevice (nd1);
    78   nd1->SetSendEnable (false);
    78   nd1->SetSendEnable (false);
    79   nd1->SetReceiveEnable (true);
    79   nd1->SetReceiveEnable (true);
    84 void
    84 void
    85 CsmaIpv4Topology::AddIpv4RawCsmaNode(Ptr<Node> n1,
    85 CsmaIpv4Topology::AddIpv4RawCsmaNode(Ptr<Node> n1,
    86                                      Ptr<CsmaChannel> ch,
    86                                      Ptr<CsmaChannel> ch,
    87                                      Mac48Address addr)
    87                                      Mac48Address addr)
    88 {
    88 {
    89   Ptr<Queue> q = CreateObjectWith<DropTailQueue> ();
    89   Ptr<Queue> q = CreateObject<DropTailQueue> ();
    90 
    90 
    91   Ptr<CsmaNetDevice> nd0 = CreateObjectWith<CsmaNetDevice> ("Node", n1, 
    91   Ptr<CsmaNetDevice> nd0 = CreateObject<CsmaNetDevice> ("Node", n1, 
    92                                                             "Address", addr,
    92                                                             "Address", addr,
    93                                                             "EncapsulationMode", String ("Raw"));
    93                                                             "EncapsulationMode", String ("Raw"));
    94   n1->AddDevice (nd0);
    94   n1->AddDevice (nd0);
    95   nd0->SetSendEnable (true);
    95   nd0->SetSendEnable (true);
    96   nd0->SetReceiveEnable (false);
    96   nd0->SetReceiveEnable (false);
    97   nd0->AddQueue(q);
    97   nd0->AddQueue(q);
    98   nd0->Attach (ch);
    98   nd0->Attach (ch);
    99 
    99 
   100   Ptr<CsmaNetDevice> nd1 = CreateObjectWith<CsmaNetDevice> ("Node", n1, 
   100   Ptr<CsmaNetDevice> nd1 = CreateObject<CsmaNetDevice> ("Node", n1, 
   101                                                             "Address", addr,
   101                                                             "Address", addr,
   102                                                             "EncapsulationMode", String ("Raw"));
   102                                                             "EncapsulationMode", String ("Raw"));
   103   n1->AddDevice (nd1);
   103   n1->AddDevice (nd1);
   104   nd1->SetSendEnable (false);
   104   nd1->SetSendEnable (false);
   105   nd1->SetReceiveEnable (true);
   105   nd1->SetReceiveEnable (true);