Bug 1143 CsmaStarHelper::GetHubDevices) returns spoke devices, not hub devices
authorJohn Abraham<john.abraham@gatech.edu>
Fri, 13 May 2011 16:15:13 -0700
changeset 7202 08ae7db938f6
parent 7201 61140caa6f71
child 7203 90a20d9a0fee
Bug 1143 CsmaStarHelper::GetHubDevices) returns spoke devices, not hub devices
src/csma-layout/model/csma-star-helper.cc
src/csma/helper/csma-star-helper.cc
src/csma/helper/csma-star-helper.h
src/csma/test/examples-to-run.py
--- a/src/csma-layout/model/csma-star-helper.cc	Fri May 13 13:51:55 2011 -0700
+++ b/src/csma-layout/model/csma-star-helper.cc	Fri May 13 16:15:13 2011 -0700
@@ -62,7 +62,7 @@
 NetDeviceContainer
 CsmaStarHelper::GetHubDevices () const
 {
-  return m_spokeDevices;
+  return m_hubDevices;
 }
 
 NetDeviceContainer
--- a/src/csma/helper/csma-star-helper.cc	Fri May 13 13:51:55 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#include <iostream>
-#include <sstream>
-
-// ns3 includes
-#include "ns3/animation-interface.h"
-#include "ns3/csma-star-helper.h"
-
-#include "ns3/node-list.h"
-#include "ns3/point-to-point-net-device.h"
-#include "ns3/vector.h"
-
-NS_LOG_COMPONENT_DEFINE("CsmaStarHelper");
-
-namespace ns3 {
-
-CsmaStarHelper::CsmaStarHelper (uint32_t numSpokes,
-                                CsmaHelper csmaHelper)
-{
-  m_hub.Create (1);
-  m_spokes.Create (numSpokes);
-
-  for (uint32_t i = 0; i < m_spokes.GetN (); ++i)
-    {
-      NodeContainer nodes (m_hub.Get (0), m_spokes.Get (i));
-      NetDeviceContainer nd = csmaHelper.Install (nodes);
-      m_hubDevices.Add (nd.Get (0));
-      m_spokeDevices.Add (nd.Get (1));
-    }
-}
-
-CsmaStarHelper::~CsmaStarHelper ()
-{
-}
-
-Ptr<Node>
-CsmaStarHelper::GetHub () const
-{
-  return m_hub.Get (0);
-}
-
-Ptr<Node>
-CsmaStarHelper::GetSpokeNode (uint32_t i) const
-{
-  return m_spokes.Get (i);
-}
-
-NetDeviceContainer
-CsmaStarHelper::GetHubDevices () const
-{
-  return m_spokeDevices;
-}
-
-NetDeviceContainer
-CsmaStarHelper::GetSpokeDevices () const
-{
-  return m_spokeDevices;
-}
-
-Ipv4Address 
-CsmaStarHelper::GetHubIpv4Address (uint32_t i) const
-{
-  return m_hubInterfaces.GetAddress (i);
-}
-
-Ipv4Address 
-CsmaStarHelper::GetSpokeIpv4Address (uint32_t i) const
-{
-  return m_spokeInterfaces.GetAddress (i);
-}
-
-uint32_t
-CsmaStarHelper::SpokeCount () const
-{
-  return m_spokes.GetN ();
-}
-
-void 
-CsmaStarHelper::InstallStack (InternetStackHelper stack)
-{
-  stack.Install (m_hub);
-  stack.Install (m_spokes);
-}
-
-void 
-CsmaStarHelper::AssignIpv4Addresses (Ipv4AddressHelper address)
-{
-  for (uint32_t i = 0; i < m_spokes.GetN (); ++i)
-    {
-      m_hubInterfaces.Add (address.Assign (m_hubDevices.Get (i)));
-      m_spokeInterfaces.Add (address.Assign (m_spokeDevices.Get (i)));
-      address.NewNetwork ();
-    }
-}
-
-} // namespace ns3
--- a/src/csma/helper/csma-star-helper.h	Fri May 13 13:51:55 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-// Define an object to create a dumbbell topology.
-
-#ifndef CSMA_STAR_HELPER_H
-#define CSMA_STAR_HELPER_H
-
-#include <string>
-
-#include "csma-helper.h"
-#include "ipv4-address-helper.h"
-#include "internet-stack-helper.h"
-#include "ipv4-interface-container.h"
-
-namespace ns3 {
-
-/**
- * \brief A helper to make it easier to create a star topology
- * with Csma links
- */
-class CsmaStarHelper
-{
-public:
-  /**
-   * Create a CsmaStarHelper in order to easily create
-   * star topologies using Csma links
-   *
-   * \param numSpokes the number of links attached to 
-   *        the hub node, creating a total of 
-   *        numSpokes + 1 nodes
-   *
-   * \param csmaHelper the link helper for Csma links, 
-   *        used to link nodes together
-   */
-  CsmaStarHelper (uint32_t numSpokes, 
-                  CsmaHelper csmaHelper);
-
-  ~CsmaStarHelper ();
-
-public:
-  /**
-   * \returns a node pointer to the hub node in the
-   *          star, i.e., the center node
-   */
-  Ptr<Node> GetHub () const;
-
-  /**
-   * \param i an index into the spokes of the star
-   *
-   * \returns a node pointer to the node at the indexed spoke
-   */
-  Ptr<Node> GetSpokeNode (uint32_t i) const;
-
-  /**
-   * \returns the net-device container which contains all of 
-   *          the devices on the hub node
-   */
-  NetDeviceContainer GetHubDevices () const;
-
-  /**
-   * \returns the net-device container which contains all of 
-   *          the spoke node devices
-   */
-  NetDeviceContainer GetSpokeDevices () const;
-
-  /**
-   * \param i index into the hub interfaces
-   *
-   * \returns Ipv4Address according to indexed hub interface
-   */
-  Ipv4Address GetHubIpv4Address (uint32_t i) const;
-
-  /**
-   * \param i index into the spoke interfaces
-   *
-   * \returns Ipv4Address according to indexed spoke interface
-   */
-  Ipv4Address GetSpokeIpv4Address (uint32_t i) const;
-
-  /**
-   * \returns the total number of spokes in the star
-   */
-  uint32_t SpokeCount () const;
-
-  /**
-   * \param stack an InternetStackHelper which is used to install 
-   *              on every node in the star
-   */
-  void InstallStack (InternetStackHelper stack);
-
-  /**
-   * \param address an Ipv4AddressHelper which is used to install 
-   *                Ipv4 addresses on all the node interfaces in 
-   *                the star
-   */
-  void AssignIpv4Addresses (Ipv4AddressHelper address);
-
-private:
-  NodeContainer m_hub;
-  NetDeviceContainer m_hubDevices;
-  NodeContainer m_spokes;
-  NetDeviceContainer m_spokeDevices;
-  Ipv4InterfaceContainer m_hubInterfaces;
-  Ipv4InterfaceContainer m_spokeInterfaces;
-};
-
-} // namespace ns3
-
-#endif /* CSMA_STAR_HELPER_H */
--- a/src/csma/test/examples-to-run.py	Fri May 13 13:51:55 2011 -0700
+++ b/src/csma/test/examples-to-run.py	Fri May 13 16:15:13 2011 -0700
@@ -14,7 +14,6 @@
     ("csma-packet-socket", "True", "True"),
     ("csma-ping", "True", "True"),
     ("csma-raw-ip-socket", "True", "True"),
-    ("csma-star", "True", "True"),
 ]
 
 # A list of Python examples to run in order to ensure that they remain