From b1f05f2a33406d1a8f7cd4e869ef2fba9fc5f863 Mon Sep 17 00:00:00 2001 From: Alina Quereilhac Date: Mon, 6 May 2013 00:50:09 +0200 Subject: [PATCH] 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 | 2 +- .../bindings/modulegen__gcc_ILP32.py | 33 +++++++++++++++++++ .../bindings/modulegen__gcc_LP64.py | 33 +++++++++++++++++++ src/fd-net-device/wscript | 11 +++++-- 4 files changed, 76 insertions(+), 3 deletions(-) diff --git a/src/fd-net-device/bindings/callbacks_list.py b/src/fd-net-device/bindings/callbacks_list.py index cbd6c6ced..40e503268 100644 --- a/src/fd-net-device/bindings/callbacks_list.py +++ b/src/fd-net-device/bindings/callbacks_list.py @@ -2,6 +2,6 @@ callback_classes = [ ['bool', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['bool', 'ns3::Ptr', 'ns3::Ptr', '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::Ptr', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ] diff --git a/src/fd-net-device/bindings/modulegen__gcc_ILP32.py b/src/fd-net-device/bindings/modulegen__gcc_ILP32.py index 9f96b69ba..40b208d94 100644 --- a/src/fd-net-device/bindings/modulegen__gcc_ILP32.py +++ b/src/fd-net-device/bindings/modulegen__gcc_ILP32.py @@ -234,6 +234,8 @@ def register_types(module): module.add_class('OutputStreamWrapper', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter >']) ## 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 >']) + ## 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 @@ def register_methods(root_module): 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 @@ def register_Ns3Packet_methods(root_module, cls): [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::PlanetLabFdNetDeviceHelper::InstallPriv(ns3::Ptr 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 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')]) diff --git a/src/fd-net-device/bindings/modulegen__gcc_LP64.py b/src/fd-net-device/bindings/modulegen__gcc_LP64.py index 6cab9cf6d..42c89b174 100644 --- a/src/fd-net-device/bindings/modulegen__gcc_LP64.py +++ b/src/fd-net-device/bindings/modulegen__gcc_LP64.py @@ -234,6 +234,8 @@ def register_types(module): module.add_class('OutputStreamWrapper', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter >']) ## 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 >']) + ## 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 @@ def register_methods(root_module): 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 @@ def register_Ns3Packet_methods(root_module, cls): [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::PlanetLabFdNetDeviceHelper::InstallPriv(ns3::Ptr 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 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')]) diff --git a/src/fd-net-device/wscript b/src/fd-net-device/wscript index 5c5ea64c9..e922f48d7 100644 --- a/src/fd-net-device/wscript +++ b/src/fd-net-device/wscript @@ -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 @@ def configure(conf): # 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 @@ def configure(conf): 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.