For csma, set a sensible netdevice name, if none has been set.
authorGustavo J. A. M. Carneiro <gjc@inescporto.pt>
Fri, 04 Jul 2008 12:35:13 +0100
changeset 3436 c741d41f9bfb
parent 3435 1d704c128f1f
child 3437 7cec39fe195c
For csma, set a sensible netdevice name, if none has been set.
src/devices/csma/csma-net-device.cc
--- a/src/devices/csma/csma-net-device.cc	Mon Jun 30 19:25:58 2008 +0100
+++ b/src/devices/csma/csma-net-device.cc	Fri Jul 04 12:35:13 2008 +0100
@@ -785,6 +785,25 @@
 CsmaNetDevice::SetNode (Ptr<Node> node)
 {
   m_node = node;
+  int count = -1;
+  if (m_name.size () == 0)
+    {
+      for (uint32_t i = 0; i < node->GetNDevices (); i++)
+        {
+          Ptr<NetDevice> dev = node->GetDevice (i);
+          if (dynamic_cast<CsmaNetDevice*> (PeekPointer (dev)))
+            {
+              count++;
+              if (dev == this)
+                {
+                  break;
+                }
+            }
+        }
+      std::ostringstream s;
+      s << "eth" << count;
+      m_name = s.str ();
+    }
 }
 
   bool