Add a framework to register and lookup netdevice traits (is it wirelss, is it virtual?...)
--- a/src/contrib/visualizer/base.py Thu Oct 16 15:22:53 2008 +0100
+++ b/src/contrib/visualizer/base.py Sun Oct 19 14:53:12 2008 +0100
@@ -1,3 +1,4 @@
+import ns3
import gobject
class PyVizObject(gobject.GObject):
@@ -14,3 +15,18 @@
def update(self):
raise NotImplementedError
+class NetDeviceTraits(object):
+ def __init__(self, is_wireless=None, is_virtual=False):
+ self.is_wireless = is_wireless
+ self.is_virtual = is_virtual
+
+netdevice_traits = {
+ ns3.PointToPointNetDevice: NetDeviceTraits(is_wireless=False),
+ ns3.CsmaNetDevice: NetDeviceTraits(is_wireless=False),
+ ns3.WifiNetDevice: NetDeviceTraits(is_wireless=True),
+ ns3.BridgeNetDevice: NetDeviceTraits(is_virtual=True),
+}
+
+def lookup_netdevice_traits(class_type):
+ return netdevice_traits[class_type]
+
--- a/src/contrib/visualizer/core.py Thu Oct 16 15:22:53 2008 +0100
+++ b/src/contrib/visualizer/core.py Sun Oct 19 14:53:12 2008 +0100
@@ -40,7 +40,7 @@
_import_error = None
-from base import InformationWindow, PyVizObject, Link
+from base import InformationWindow, PyVizObject, Link, lookup_netdevice_traits
plugins = []
@@ -724,9 +724,12 @@
for devI in range(node.GetNDevices()):
device = node.GetDevice(devI)
+ device_traits = lookup_netdevice_traits(type(device))
+ if device_traits.is_wireless:
+ continue
+ if device_traits.is_virtual:
+ continue
channel = device.GetChannel()
- if isinstance(channel, (ns3.BridgeChannel, ns3.WifiChannel)):
- continue
if channel.GetNDevices() > 2:
if REPRESENT_CHANNELS_AS_NODES:
# represent channels as white nodes