fixed Bug 1649 - bindings scanning for fd-net-device (adding --force-planetlab option to force PlanetLab support)
authorAlina Quereilhac <alina.quereilhac@inria.fr>
Mon, 06 May 2013 00:50:09 +0200
changeset 9740 e6777ccef033
parent 9739 211496d6d5d6
child 9741 98737f7646a1
fixed Bug 1649 - bindings scanning for fd-net-device (adding --force-planetlab option to force PlanetLab support)
src/fd-net-device/bindings/callbacks_list.py
src/fd-net-device/bindings/modulegen__gcc_ILP32.py
src/fd-net-device/bindings/modulegen__gcc_LP64.py
src/fd-net-device/wscript
--- a/src/fd-net-device/bindings/callbacks_list.py	Sat May 04 22:38:49 2013 +0200
+++ b/src/fd-net-device/bindings/callbacks_list.py	Mon May 06 00:50:09 2013 +0200
@@ -2,6 +2,6 @@
     ['bool', 'ns3::Ptr<ns3::NetDevice>', 'ns3::Ptr<ns3::Packet const>', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['bool', 'ns3::Ptr<ns3::NetDevice>', 'ns3::Ptr<ns3::Packet const>', 'unsigned short', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
-    ['void', 'unsigned char*', 'long', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
+    ['void', 'unsigned char*', 'int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::Ptr<ns3::NetDevice>', 'ns3::Ptr<ns3::Packet const>', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
 ]
--- a/src/fd-net-device/bindings/modulegen__gcc_ILP32.py	Sat May 04 22:38:49 2013 +0200
+++ b/src/fd-net-device/bindings/modulegen__gcc_ILP32.py	Mon May 06 00:50:09 2013 +0200
@@ -234,6 +234,8 @@
     module.add_class('OutputStreamWrapper', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter<ns3::OutputStreamWrapper> >'])
     ## packet.h (module 'network'): ns3::Packet [class]
     module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter<ns3::Packet> >'])
+    ## planetlab-fd-net-device-helper.h (module 'fd-net-device'): ns3::PlanetLabFdNetDeviceHelper [class]
+    module.add_class('PlanetLabFdNetDeviceHelper', parent=root_module['ns3::EmuFdNetDeviceHelper'])
     ## tap-fd-net-device-helper.h (module 'fd-net-device'): ns3::TapFdNetDeviceHelper [class]
     module.add_class('TapFdNetDeviceHelper', parent=root_module['ns3::EmuFdNetDeviceHelper'])
     ## nstime.h (module 'core'): ns3::TimeChecker [class]
@@ -363,6 +365,7 @@
     register_Ns3ObjectFactoryValue_methods(root_module, root_module['ns3::ObjectFactoryValue'])
     register_Ns3OutputStreamWrapper_methods(root_module, root_module['ns3::OutputStreamWrapper'])
     register_Ns3Packet_methods(root_module, root_module['ns3::Packet'])
+    register_Ns3PlanetLabFdNetDeviceHelper_methods(root_module, root_module['ns3::PlanetLabFdNetDeviceHelper'])
     register_Ns3TapFdNetDeviceHelper_methods(root_module, root_module['ns3::TapFdNetDeviceHelper'])
     register_Ns3TimeChecker_methods(root_module, root_module['ns3::TimeChecker'])
     register_Ns3TimeValue_methods(root_module, root_module['ns3::TimeValue'])
@@ -4172,6 +4175,36 @@
                    [param('ns3::Ptr< ns3::NixVector >', 'arg0')])
     return
 
+def register_Ns3PlanetLabFdNetDeviceHelper_methods(root_module, cls):
+    ## planetlab-fd-net-device-helper.h (module 'fd-net-device'): ns3::PlanetLabFdNetDeviceHelper::PlanetLabFdNetDeviceHelper(ns3::PlanetLabFdNetDeviceHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PlanetLabFdNetDeviceHelper const &', 'arg0')])
+    ## planetlab-fd-net-device-helper.h (module 'fd-net-device'): ns3::PlanetLabFdNetDeviceHelper::PlanetLabFdNetDeviceHelper() [constructor]
+    cls.add_constructor([])
+    ## planetlab-fd-net-device-helper.h (module 'fd-net-device'): void ns3::PlanetLabFdNetDeviceHelper::SetTapIpAddress(ns3::Ipv4Address address) [member function]
+    cls.add_method('SetTapIpAddress', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'address')])
+    ## planetlab-fd-net-device-helper.h (module 'fd-net-device'): void ns3::PlanetLabFdNetDeviceHelper::SetTapMask(ns3::Ipv4Mask mask) [member function]
+    cls.add_method('SetTapMask', 
+                   'void', 
+                   [param('ns3::Ipv4Mask', 'mask')])
+    ## planetlab-fd-net-device-helper.h (module 'fd-net-device'): int ns3::PlanetLabFdNetDeviceHelper::CreateFileDescriptor() const [member function]
+    cls.add_method('CreateFileDescriptor', 
+                   'int', 
+                   [], 
+                   is_const=True, visibility='protected', is_virtual=True)
+    ## planetlab-fd-net-device-helper.h (module 'fd-net-device'): ns3::Ptr<ns3::NetDevice> ns3::PlanetLabFdNetDeviceHelper::InstallPriv(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('InstallPriv', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, visibility='protected', is_virtual=True)
+    ## planetlab-fd-net-device-helper.h (module 'fd-net-device'): void ns3::PlanetLabFdNetDeviceHelper::SetFileDescriptor(ns3::Ptr<ns3::FdNetDevice> device) const [member function]
+    cls.add_method('SetFileDescriptor', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::FdNetDevice >', 'device')], 
+                   is_const=True, visibility='protected', is_virtual=True)
+    return
+
 def register_Ns3TapFdNetDeviceHelper_methods(root_module, cls):
     ## tap-fd-net-device-helper.h (module 'fd-net-device'): ns3::TapFdNetDeviceHelper::TapFdNetDeviceHelper(ns3::TapFdNetDeviceHelper const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::TapFdNetDeviceHelper const &', 'arg0')])
--- a/src/fd-net-device/bindings/modulegen__gcc_LP64.py	Sat May 04 22:38:49 2013 +0200
+++ b/src/fd-net-device/bindings/modulegen__gcc_LP64.py	Mon May 06 00:50:09 2013 +0200
@@ -234,6 +234,8 @@
     module.add_class('OutputStreamWrapper', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter<ns3::OutputStreamWrapper> >'])
     ## packet.h (module 'network'): ns3::Packet [class]
     module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter<ns3::Packet> >'])
+    ## planetlab-fd-net-device-helper.h (module 'fd-net-device'): ns3::PlanetLabFdNetDeviceHelper [class]
+    module.add_class('PlanetLabFdNetDeviceHelper', parent=root_module['ns3::EmuFdNetDeviceHelper'])
     ## tap-fd-net-device-helper.h (module 'fd-net-device'): ns3::TapFdNetDeviceHelper [class]
     module.add_class('TapFdNetDeviceHelper', parent=root_module['ns3::EmuFdNetDeviceHelper'])
     ## nstime.h (module 'core'): ns3::TimeChecker [class]
@@ -363,6 +365,7 @@
     register_Ns3ObjectFactoryValue_methods(root_module, root_module['ns3::ObjectFactoryValue'])
     register_Ns3OutputStreamWrapper_methods(root_module, root_module['ns3::OutputStreamWrapper'])
     register_Ns3Packet_methods(root_module, root_module['ns3::Packet'])
+    register_Ns3PlanetLabFdNetDeviceHelper_methods(root_module, root_module['ns3::PlanetLabFdNetDeviceHelper'])
     register_Ns3TapFdNetDeviceHelper_methods(root_module, root_module['ns3::TapFdNetDeviceHelper'])
     register_Ns3TimeChecker_methods(root_module, root_module['ns3::TimeChecker'])
     register_Ns3TimeValue_methods(root_module, root_module['ns3::TimeValue'])
@@ -4172,6 +4175,36 @@
                    [param('ns3::Ptr< ns3::NixVector >', 'arg0')])
     return
 
+def register_Ns3PlanetLabFdNetDeviceHelper_methods(root_module, cls):
+    ## planetlab-fd-net-device-helper.h (module 'fd-net-device'): ns3::PlanetLabFdNetDeviceHelper::PlanetLabFdNetDeviceHelper(ns3::PlanetLabFdNetDeviceHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PlanetLabFdNetDeviceHelper const &', 'arg0')])
+    ## planetlab-fd-net-device-helper.h (module 'fd-net-device'): ns3::PlanetLabFdNetDeviceHelper::PlanetLabFdNetDeviceHelper() [constructor]
+    cls.add_constructor([])
+    ## planetlab-fd-net-device-helper.h (module 'fd-net-device'): void ns3::PlanetLabFdNetDeviceHelper::SetTapIpAddress(ns3::Ipv4Address address) [member function]
+    cls.add_method('SetTapIpAddress', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'address')])
+    ## planetlab-fd-net-device-helper.h (module 'fd-net-device'): void ns3::PlanetLabFdNetDeviceHelper::SetTapMask(ns3::Ipv4Mask mask) [member function]
+    cls.add_method('SetTapMask', 
+                   'void', 
+                   [param('ns3::Ipv4Mask', 'mask')])
+    ## planetlab-fd-net-device-helper.h (module 'fd-net-device'): int ns3::PlanetLabFdNetDeviceHelper::CreateFileDescriptor() const [member function]
+    cls.add_method('CreateFileDescriptor', 
+                   'int', 
+                   [], 
+                   is_const=True, visibility='protected', is_virtual=True)
+    ## planetlab-fd-net-device-helper.h (module 'fd-net-device'): ns3::Ptr<ns3::NetDevice> ns3::PlanetLabFdNetDeviceHelper::InstallPriv(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('InstallPriv', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, visibility='protected', is_virtual=True)
+    ## planetlab-fd-net-device-helper.h (module 'fd-net-device'): void ns3::PlanetLabFdNetDeviceHelper::SetFileDescriptor(ns3::Ptr<ns3::FdNetDevice> device) const [member function]
+    cls.add_method('SetFileDescriptor', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::FdNetDevice >', 'device')], 
+                   is_const=True, visibility='protected', is_virtual=True)
+    return
+
 def register_Ns3TapFdNetDeviceHelper_methods(root_module, cls):
     ## tap-fd-net-device-helper.h (module 'fd-net-device'): ns3::TapFdNetDeviceHelper::TapFdNetDeviceHelper(ns3::TapFdNetDeviceHelper const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::TapFdNetDeviceHelper const &', 'arg0')])
--- a/src/fd-net-device/wscript	Sat May 04 22:38:49 2013 +0200
+++ b/src/fd-net-device/wscript	Mon May 06 00:50:09 2013 +0200
@@ -2,6 +2,13 @@
 
 import os.path
 
+from waflib import Options
+
+def options(opt):
+    opt.add_option('--force-planetlab',
+                   help=('Forces compilation of PlanetLab even if not suported by the local system'),
+                   dest='force_planetlab', default=False, action="store_true")
+
 def configure(conf):
     conf.env['ENABLE_FDNETDEV'] = False
 
@@ -72,7 +79,7 @@
         # Enable use of PlanetLab TAP helper
         # TODO: How to validate 
         (sysname, nodename, release, version, machine) = os.uname()
-        if release.find('onelab') != -1:
+        if release.find('onelab') != -1 or Options.options.force_planetlab:
             conf.env['ENABLE_PLANETLAB'] = True
 
         if conf.env['ENABLE_PLANETLAB']:
@@ -84,7 +91,7 @@
             conf.report_optional_feature("PlanetLabFdNetDevice", 
                 "PlanetLab FdNetDevice", 
                 False,
-                "PlanetLab operating system not detected")
+                "PlanetLab operating system not detected (see option --force-planetlab)")
 
 def build(bld):
     # Don't do anything for this module if emu's not enabled.