From a66b8cab4ebebde795d0ab3b89e5e143a1ddc195 Mon Sep 17 00:00:00 2001 From: Craig Dowell Date: Mon, 16 Mar 2009 09:44:01 -0700 Subject: [PATCH] remove unneeded packet copies, includes. Rescan --- bindings/python/ns3_module_core.py | 13 +- bindings/python/ns3_module_helper.py | 72 +++++-- bindings/python/ns3_module_mobility.py | 186 +++++++++++------- bindings/python/ns3_module_wifi.py | 44 +++++ src/devices/csma/csma-net-device.cc | 2 +- src/devices/emu/emu-net-device.cc | 2 +- .../point-to-point-net-device.cc | 5 +- src/devices/tap-bridge/tap-bridge.cc | 4 +- src/devices/wifi/wifi-net-device.cc | 4 +- src/devices/wifi/wifi-net-device.h | 8 - 10 files changed, 228 insertions(+), 112 deletions(-) diff --git a/bindings/python/ns3_module_core.py b/bindings/python/ns3_module_core.py index 698bb3e70..155e889e5 100644 --- a/bindings/python/ns3_module_core.py +++ b/bindings/python/ns3_module_core.py @@ -1059,6 +1059,11 @@ def register_Ns3TypeId_methods(root_module, cls): 'bool', [param('ns3::TypeId', 'other')], is_const=True) + ## type-id.h: static bool ns3::TypeId::LookupAttributeByFullName(std::string fullName, ns3::TypeId::AttributeInfo * info) [member function] + cls.add_method('LookupAttributeByFullName', + 'bool', + [param('std::string', 'fullName'), param('ns3::TypeId::AttributeInfo *', 'info')], + is_static=True) ## type-id.h: bool ns3::TypeId::LookupAttributeByName(std::string name, ns3::TypeId::AttributeInfo * info) const [member function] cls.add_method('LookupAttributeByName', 'bool', @@ -1124,6 +1129,10 @@ def register_Ns3UniformVariable_methods(root_module, cls): cls.add_method('GetValue', 'double', [param('double', 's'), param('double', 'l')]) + ## random-variable.h: uint32_t ns3::UniformVariable::GetInteger(uint32_t s, uint32_t l) [member function] + cls.add_method('GetInteger', + 'uint32_t', + [param('uint32_t', 's'), param('uint32_t', 'l')]) return def register_Ns3UnsafeAttributeList_methods(root_module, cls): @@ -1975,7 +1984,7 @@ def register_Ns3TracedValue__Unsigned_int_methods(root_module, cls): cls.add_method('ConnectWithoutContext', 'void', [param('ns3::CallbackBase const &', 'cb')]) - ## traced-value.h: void ns3::TracedValue::Connect(ns3::CallbackBase const & cb, std::string path) [member function] + ## traced-value.h: void ns3::TracedValue::Connect(ns3::CallbackBase const & cb, std::basic_string,std::allocator > path) [member function] cls.add_method('Connect', 'void', [param('ns3::CallbackBase const &', 'cb'), param('std::string', 'path')]) @@ -1983,7 +1992,7 @@ def register_Ns3TracedValue__Unsigned_int_methods(root_module, cls): cls.add_method('DisconnectWithoutContext', 'void', [param('ns3::CallbackBase const &', 'cb')]) - ## traced-value.h: void ns3::TracedValue::Disconnect(ns3::CallbackBase const & cb, std::string path) [member function] + ## traced-value.h: void ns3::TracedValue::Disconnect(ns3::CallbackBase const & cb, std::basic_string,std::allocator > path) [member function] cls.add_method('Disconnect', 'void', [param('ns3::CallbackBase const &', 'cb'), param('std::string', 'path')]) diff --git a/bindings/python/ns3_module_helper.py b/bindings/python/ns3_module_helper.py index 7fe0ad665..bdcf01d60 100644 --- a/bindings/python/ns3_module_helper.py +++ b/bindings/python/ns3_module_helper.py @@ -219,25 +219,35 @@ def register_Ns3CsmaHelper_methods(root_module, cls): 'void', [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')], deprecated=True) - ## csma-helper.h: static void ns3::CsmaHelper::EnablePcap(std::string filename, uint32_t nodeid, uint32_t deviceid) [member function] + ## csma-helper.h: static void ns3::CsmaHelper::EnablePcap(std::string filename, uint32_t nodeid, uint32_t deviceid, bool promiscuous) [member function] cls.add_method('EnablePcap', 'void', - [param('std::string', 'filename'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid')], + [param('std::string', 'filename'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid'), param('bool', 'promiscuous')], is_static=True) - ## csma-helper.h: static void ns3::CsmaHelper::EnablePcap(std::string filename, ns3::NetDeviceContainer d) [member function] + ## csma-helper.h: static void ns3::CsmaHelper::EnablePcap(std::string filename, ns3::Ptr nd, bool promiscuous) [member function] cls.add_method('EnablePcap', 'void', - [param('std::string', 'filename'), param('ns3::NetDeviceContainer', 'd')], + [param('std::string', 'filename'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'promiscuous')], is_static=True) - ## csma-helper.h: static void ns3::CsmaHelper::EnablePcap(std::string filename, ns3::NodeContainer n) [member function] + ## csma-helper.h: static void ns3::CsmaHelper::EnablePcap(std::string filename, std::string ndName, bool promiscuous) [member function] cls.add_method('EnablePcap', 'void', - [param('std::string', 'filename'), param('ns3::NodeContainer', 'n')], + [param('std::string', 'filename'), param('std::string', 'ndName'), param('bool', 'promiscuous')], is_static=True) - ## csma-helper.h: static void ns3::CsmaHelper::EnablePcapAll(std::string filename) [member function] + ## csma-helper.h: static void ns3::CsmaHelper::EnablePcap(std::string filename, ns3::NetDeviceContainer d, bool promiscuous) [member function] + cls.add_method('EnablePcap', + 'void', + [param('std::string', 'filename'), param('ns3::NetDeviceContainer', 'd'), param('bool', 'promiscuous')], + is_static=True) + ## csma-helper.h: static void ns3::CsmaHelper::EnablePcap(std::string filename, ns3::NodeContainer n, bool promiscuous) [member function] + cls.add_method('EnablePcap', + 'void', + [param('std::string', 'filename'), param('ns3::NodeContainer', 'n'), param('bool', 'promiscuous')], + is_static=True) + ## csma-helper.h: static void ns3::CsmaHelper::EnablePcapAll(std::string filename, bool promiscuous) [member function] cls.add_method('EnablePcapAll', 'void', - [param('std::string', 'filename')], + [param('std::string', 'filename'), param('bool', 'promiscuous')], is_static=True) ## csma-helper.h: static void ns3::CsmaHelper::EnableAscii(std::ostream & os, uint32_t nodeid, uint32_t deviceid) [member function] cls.add_method('EnableAscii', @@ -327,25 +337,35 @@ def register_Ns3EmuHelper_methods(root_module, cls): cls.add_method('SetAttribute', 'void', [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')]) - ## emu-helper.h: static void ns3::EmuHelper::EnablePcap(std::string filename, uint32_t nodeid, uint32_t deviceid) [member function] + ## emu-helper.h: static void ns3::EmuHelper::EnablePcap(std::string filename, uint32_t nodeid, uint32_t deviceid, bool promiscuous) [member function] cls.add_method('EnablePcap', 'void', - [param('std::string', 'filename'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid')], + [param('std::string', 'filename'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid'), param('bool', 'promiscuous')], is_static=True) - ## emu-helper.h: static void ns3::EmuHelper::EnablePcap(std::string filename, ns3::NetDeviceContainer d) [member function] + ## emu-helper.h: static void ns3::EmuHelper::EnablePcap(std::string filename, ns3::Ptr nd, bool promiscuous) [member function] cls.add_method('EnablePcap', 'void', - [param('std::string', 'filename'), param('ns3::NetDeviceContainer', 'd')], + [param('std::string', 'filename'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'promiscuous')], is_static=True) - ## emu-helper.h: static void ns3::EmuHelper::EnablePcap(std::string filename, ns3::NodeContainer n) [member function] + ## emu-helper.h: static void ns3::EmuHelper::EnablePcap(std::string filename, std::string ndName, bool promiscuous) [member function] cls.add_method('EnablePcap', 'void', - [param('std::string', 'filename'), param('ns3::NodeContainer', 'n')], + [param('std::string', 'filename'), param('std::string', 'ndName'), param('bool', 'promiscuous')], is_static=True) - ## emu-helper.h: static void ns3::EmuHelper::EnablePcapAll(std::string filename) [member function] + ## emu-helper.h: static void ns3::EmuHelper::EnablePcap(std::string filename, ns3::NetDeviceContainer d, bool promiscuous) [member function] + cls.add_method('EnablePcap', + 'void', + [param('std::string', 'filename'), param('ns3::NetDeviceContainer', 'd'), param('bool', 'promiscuous')], + is_static=True) + ## emu-helper.h: static void ns3::EmuHelper::EnablePcap(std::string filename, ns3::NodeContainer n, bool promiscuous) [member function] + cls.add_method('EnablePcap', + 'void', + [param('std::string', 'filename'), param('ns3::NodeContainer', 'n'), param('bool', 'promiscuous')], + is_static=True) + ## emu-helper.h: static void ns3::EmuHelper::EnablePcapAll(std::string filename, bool promiscuous) [member function] cls.add_method('EnablePcapAll', 'void', - [param('std::string', 'filename')], + [param('std::string', 'filename'), param('bool', 'promiscuous')], is_static=True) ## emu-helper.h: static void ns3::EmuHelper::EnableAscii(std::ostream & os, uint32_t nodeid, uint32_t deviceid) [member function] cls.add_method('EnableAscii', @@ -801,6 +821,16 @@ def register_Ns3PointToPointHelper_methods(root_module, cls): 'void', [param('std::string', 'filename'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid')], is_static=True) + ## point-to-point-helper.h: static void ns3::PointToPointHelper::EnablePcap(std::string filename, ns3::Ptr nd) [member function] + cls.add_method('EnablePcap', + 'void', + [param('std::string', 'filename'), param('ns3::Ptr< ns3::NetDevice >', 'nd')], + is_static=True) + ## point-to-point-helper.h: static void ns3::PointToPointHelper::EnablePcap(std::string filename, std::string ndName) [member function] + cls.add_method('EnablePcap', + 'void', + [param('std::string', 'filename'), param('std::string', 'ndName')], + is_static=True) ## point-to-point-helper.h: static void ns3::PointToPointHelper::EnablePcap(std::string filename, ns3::NetDeviceContainer d) [member function] cls.add_method('EnablePcap', 'void', @@ -1121,6 +1151,16 @@ def register_Ns3YansWifiPhyHelper_methods(root_module, cls): 'void', [param('std::string', 'filename'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid')], is_static=True) + ## yans-wifi-helper.h: static void ns3::YansWifiPhyHelper::EnablePcap(std::string filename, ns3::Ptr nd) [member function] + cls.add_method('EnablePcap', + 'void', + [param('std::string', 'filename'), param('ns3::Ptr< ns3::NetDevice >', 'nd')], + is_static=True) + ## yans-wifi-helper.h: static void ns3::YansWifiPhyHelper::EnablePcap(std::string filename, std::string ndName) [member function] + cls.add_method('EnablePcap', + 'void', + [param('std::string', 'filename'), param('std::string', 'ndName')], + is_static=True) ## yans-wifi-helper.h: static void ns3::YansWifiPhyHelper::EnablePcap(std::string filename, ns3::NetDeviceContainer d) [member function] cls.add_method('EnablePcap', 'void', diff --git a/bindings/python/ns3_module_mobility.py b/bindings/python/ns3_module_mobility.py index 48a316457..c519ee0b0 100644 --- a/bindings/python/ns3_module_mobility.py +++ b/bindings/python/ns3_module_mobility.py @@ -3,12 +3,12 @@ from pybindgen import Module, FileCodeSink, param, retval, cppclass def register_types(module): root_module = module.get_root() + ## constant-velocity-helper.h: ns3::ConstantVelocityHelper [class] + module.add_class('ConstantVelocityHelper', allow_subclassing=False) ## rectangle.h: ns3::Rectangle [class] module.add_class('Rectangle') ## rectangle.h: ns3::Rectangle::Side [enumeration] module.add_enum('Side', ['RIGHT', 'LEFT', 'TOP', 'BOTTOM'], outer_class=root_module['ns3::Rectangle']) - ## static-speed-helper.h: ns3::StaticSpeedHelper [class] - module.add_class('StaticSpeedHelper', allow_subclassing=False) ## vector.h: ns3::Vector [class] module.add_class('Vector') ## position-allocator.h: ns3::PositionAllocator [class] @@ -41,10 +41,12 @@ def register_types(module): module.add_enum('Mode', ['MODE_DISTANCE', 'MODE_TIME'], outer_class=root_module['ns3::RandomWalk2dMobilityModel']) ## random-waypoint-mobility-model.h: ns3::RandomWaypointMobilityModel [class] module.add_class('RandomWaypointMobilityModel', parent=root_module['ns3::MobilityModel']) - ## static-mobility-model.h: ns3::StaticMobilityModel [class] - module.add_class('StaticMobilityModel', parent=root_module['ns3::MobilityModel']) - ## static-speed-mobility-model.h: ns3::StaticSpeedMobilityModel [class] - module.add_class('StaticSpeedMobilityModel', parent=root_module['ns3::MobilityModel']) + ## constant-acceleration-mobility-model.h: ns3::ConstantAccelerationMobilityModel [class] + module.add_class('ConstantAccelerationMobilityModel', parent=root_module['ns3::MobilityModel']) + ## constant-position-mobility-model.h: ns3::ConstantPositionMobilityModel [class] + module.add_class('ConstantPositionMobilityModel', parent=root_module['ns3::MobilityModel']) + ## constant-velocity-mobility-model.h: ns3::ConstantVelocityMobilityModel [class] + module.add_class('ConstantVelocityMobilityModel', parent=root_module['ns3::MobilityModel']) ## hierarchical-mobility-model.h: ns3::HierarchicalMobilityModel [class] module.add_class('HierarchicalMobilityModel', parent=root_module['ns3::MobilityModel']) @@ -89,8 +91,8 @@ def register_types_ns3_olsr(module): def register_methods(root_module): + register_Ns3ConstantVelocityHelper_methods(root_module, root_module['ns3::ConstantVelocityHelper']) register_Ns3Rectangle_methods(root_module, root_module['ns3::Rectangle']) - register_Ns3StaticSpeedHelper_methods(root_module, root_module['ns3::StaticSpeedHelper']) register_Ns3Vector_methods(root_module, root_module['ns3::Vector']) register_Ns3PositionAllocator_methods(root_module, root_module['ns3::PositionAllocator']) register_Ns3RandomDiscPositionAllocator_methods(root_module, root_module['ns3::RandomDiscPositionAllocator']) @@ -105,11 +107,59 @@ def register_methods(root_module): register_Ns3RandomDirection2dMobilityModel_methods(root_module, root_module['ns3::RandomDirection2dMobilityModel']) register_Ns3RandomWalk2dMobilityModel_methods(root_module, root_module['ns3::RandomWalk2dMobilityModel']) register_Ns3RandomWaypointMobilityModel_methods(root_module, root_module['ns3::RandomWaypointMobilityModel']) - register_Ns3StaticMobilityModel_methods(root_module, root_module['ns3::StaticMobilityModel']) - register_Ns3StaticSpeedMobilityModel_methods(root_module, root_module['ns3::StaticSpeedMobilityModel']) + register_Ns3ConstantAccelerationMobilityModel_methods(root_module, root_module['ns3::ConstantAccelerationMobilityModel']) + register_Ns3ConstantPositionMobilityModel_methods(root_module, root_module['ns3::ConstantPositionMobilityModel']) + register_Ns3ConstantVelocityMobilityModel_methods(root_module, root_module['ns3::ConstantVelocityMobilityModel']) register_Ns3HierarchicalMobilityModel_methods(root_module, root_module['ns3::HierarchicalMobilityModel']) return +def register_Ns3ConstantVelocityHelper_methods(root_module, cls): + ## constant-velocity-helper.h: ns3::ConstantVelocityHelper::ConstantVelocityHelper(ns3::ConstantVelocityHelper const & arg0) [copy constructor] + cls.add_constructor([param('ns3::ConstantVelocityHelper const &', 'arg0')]) + ## constant-velocity-helper.h: ns3::ConstantVelocityHelper::ConstantVelocityHelper() [constructor] + cls.add_constructor([]) + ## constant-velocity-helper.h: ns3::ConstantVelocityHelper::ConstantVelocityHelper(ns3::Vector const & position) [constructor] + cls.add_constructor([param('ns3::Vector const &', 'position')]) + ## constant-velocity-helper.h: ns3::ConstantVelocityHelper::ConstantVelocityHelper(ns3::Vector const & position, ns3::Vector const & vel) [constructor] + cls.add_constructor([param('ns3::Vector const &', 'position'), param('ns3::Vector const &', 'vel')]) + ## constant-velocity-helper.h: void ns3::ConstantVelocityHelper::SetPosition(ns3::Vector const & position) [member function] + cls.add_method('SetPosition', + 'void', + [param('ns3::Vector const &', 'position')]) + ## constant-velocity-helper.h: ns3::Vector ns3::ConstantVelocityHelper::GetCurrentPosition() const [member function] + cls.add_method('GetCurrentPosition', + 'ns3::Vector', + [], + is_const=True) + ## constant-velocity-helper.h: ns3::Vector ns3::ConstantVelocityHelper::GetVelocity() const [member function] + cls.add_method('GetVelocity', + 'ns3::Vector', + [], + is_const=True) + ## constant-velocity-helper.h: void ns3::ConstantVelocityHelper::SetVelocity(ns3::Vector const & vel) [member function] + cls.add_method('SetVelocity', + 'void', + [param('ns3::Vector const &', 'vel')]) + ## constant-velocity-helper.h: void ns3::ConstantVelocityHelper::Pause() [member function] + cls.add_method('Pause', + 'void', + []) + ## constant-velocity-helper.h: void ns3::ConstantVelocityHelper::Unpause() [member function] + cls.add_method('Unpause', + 'void', + []) + ## constant-velocity-helper.h: void ns3::ConstantVelocityHelper::UpdateWithBounds(ns3::Rectangle const & rectangle) const [member function] + cls.add_method('UpdateWithBounds', + 'void', + [param('ns3::Rectangle const &', 'rectangle')], + is_const=True) + ## constant-velocity-helper.h: void ns3::ConstantVelocityHelper::Update() const [member function] + cls.add_method('Update', + 'void', + [], + is_const=True) + return + def register_Ns3Rectangle_methods(root_module, cls): cls.add_output_stream_operator() ## rectangle.h: ns3::Rectangle::Rectangle(ns3::Rectangle const & arg0) [copy constructor] @@ -143,53 +193,6 @@ def register_Ns3Rectangle_methods(root_module, cls): cls.add_instance_attribute('yMin', 'double', is_const=False) return -def register_Ns3StaticSpeedHelper_methods(root_module, cls): - ## static-speed-helper.h: ns3::StaticSpeedHelper::StaticSpeedHelper(ns3::StaticSpeedHelper const & arg0) [copy constructor] - cls.add_constructor([param('ns3::StaticSpeedHelper const &', 'arg0')]) - ## static-speed-helper.h: ns3::StaticSpeedHelper::StaticSpeedHelper() [constructor] - cls.add_constructor([]) - ## static-speed-helper.h: ns3::StaticSpeedHelper::StaticSpeedHelper(ns3::Vector const & position) [constructor] - cls.add_constructor([param('ns3::Vector const &', 'position')]) - ## static-speed-helper.h: ns3::StaticSpeedHelper::StaticSpeedHelper(ns3::Vector const & position, ns3::Vector const & vel) [constructor] - cls.add_constructor([param('ns3::Vector const &', 'position'), param('ns3::Vector const &', 'vel')]) - ## static-speed-helper.h: void ns3::StaticSpeedHelper::SetPosition(ns3::Vector const & position) [member function] - cls.add_method('SetPosition', - 'void', - [param('ns3::Vector const &', 'position')]) - ## static-speed-helper.h: ns3::Vector ns3::StaticSpeedHelper::GetCurrentPosition() const [member function] - cls.add_method('GetCurrentPosition', - 'ns3::Vector', - [], - is_const=True) - ## static-speed-helper.h: ns3::Vector ns3::StaticSpeedHelper::GetVelocity() const [member function] - cls.add_method('GetVelocity', - 'ns3::Vector', - [], - is_const=True) - ## static-speed-helper.h: void ns3::StaticSpeedHelper::SetVelocity(ns3::Vector const & vel) [member function] - cls.add_method('SetVelocity', - 'void', - [param('ns3::Vector const &', 'vel')]) - ## static-speed-helper.h: void ns3::StaticSpeedHelper::Pause() [member function] - cls.add_method('Pause', - 'void', - []) - ## static-speed-helper.h: void ns3::StaticSpeedHelper::Unpause() [member function] - cls.add_method('Unpause', - 'void', - []) - ## static-speed-helper.h: void ns3::StaticSpeedHelper::UpdateWithBounds(ns3::Rectangle const & rectangle) const [member function] - cls.add_method('UpdateWithBounds', - 'void', - [param('ns3::Rectangle const &', 'rectangle')], - is_const=True) - ## static-speed-helper.h: void ns3::StaticSpeedHelper::Update() const [member function] - cls.add_method('Update', - 'void', - [], - is_const=True) - return - def register_Ns3Vector_methods(root_module, cls): cls.add_output_stream_operator() ## vector.h: ns3::Vector::Vector(ns3::Vector const & arg0) [copy constructor] @@ -595,58 +598,89 @@ def register_Ns3RandomWaypointMobilityModel_methods(root_module, cls): is_const=True, visibility='private', is_virtual=True) return -def register_Ns3StaticMobilityModel_methods(root_module, cls): - ## static-mobility-model.h: ns3::StaticMobilityModel::StaticMobilityModel(ns3::StaticMobilityModel const & arg0) [copy constructor] - cls.add_constructor([param('ns3::StaticMobilityModel const &', 'arg0')]) - ## static-mobility-model.h: static ns3::TypeId ns3::StaticMobilityModel::GetTypeId() [member function] +def register_Ns3ConstantAccelerationMobilityModel_methods(root_module, cls): + ## constant-acceleration-mobility-model.h: ns3::ConstantAccelerationMobilityModel::ConstantAccelerationMobilityModel(ns3::ConstantAccelerationMobilityModel const & arg0) [copy constructor] + cls.add_constructor([param('ns3::ConstantAccelerationMobilityModel const &', 'arg0')]) + ## constant-acceleration-mobility-model.h: static ns3::TypeId ns3::ConstantAccelerationMobilityModel::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', [], is_static=True) - ## static-mobility-model.h: ns3::StaticMobilityModel::StaticMobilityModel() [constructor] + ## constant-acceleration-mobility-model.h: ns3::ConstantAccelerationMobilityModel::ConstantAccelerationMobilityModel() [constructor] cls.add_constructor([]) - ## static-mobility-model.h: ns3::Vector ns3::StaticMobilityModel::DoGetPosition() const [member function] + ## constant-acceleration-mobility-model.h: void ns3::ConstantAccelerationMobilityModel::SetVelocityAndAcceleration(ns3::Vector const & velocity, ns3::Vector const & acceleration) [member function] + cls.add_method('SetVelocityAndAcceleration', + 'void', + [param('ns3::Vector const &', 'velocity'), param('ns3::Vector const &', 'acceleration')]) + ## constant-acceleration-mobility-model.h: ns3::Vector ns3::ConstantAccelerationMobilityModel::DoGetPosition() const [member function] cls.add_method('DoGetPosition', 'ns3::Vector', [], is_const=True, visibility='private', is_virtual=True) - ## static-mobility-model.h: void ns3::StaticMobilityModel::DoSetPosition(ns3::Vector const & position) [member function] + ## constant-acceleration-mobility-model.h: void ns3::ConstantAccelerationMobilityModel::DoSetPosition(ns3::Vector const & position) [member function] cls.add_method('DoSetPosition', 'void', [param('ns3::Vector const &', 'position')], visibility='private', is_virtual=True) - ## static-mobility-model.h: ns3::Vector ns3::StaticMobilityModel::DoGetVelocity() const [member function] + ## constant-acceleration-mobility-model.h: ns3::Vector ns3::ConstantAccelerationMobilityModel::DoGetVelocity() const [member function] cls.add_method('DoGetVelocity', 'ns3::Vector', [], is_const=True, visibility='private', is_virtual=True) return -def register_Ns3StaticSpeedMobilityModel_methods(root_module, cls): - ## static-speed-mobility-model.h: ns3::StaticSpeedMobilityModel::StaticSpeedMobilityModel(ns3::StaticSpeedMobilityModel const & arg0) [copy constructor] - cls.add_constructor([param('ns3::StaticSpeedMobilityModel const &', 'arg0')]) - ## static-speed-mobility-model.h: static ns3::TypeId ns3::StaticSpeedMobilityModel::GetTypeId() [member function] +def register_Ns3ConstantPositionMobilityModel_methods(root_module, cls): + ## constant-position-mobility-model.h: ns3::ConstantPositionMobilityModel::ConstantPositionMobilityModel(ns3::ConstantPositionMobilityModel const & arg0) [copy constructor] + cls.add_constructor([param('ns3::ConstantPositionMobilityModel const &', 'arg0')]) + ## constant-position-mobility-model.h: static ns3::TypeId ns3::ConstantPositionMobilityModel::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', [], is_static=True) - ## static-speed-mobility-model.h: ns3::StaticSpeedMobilityModel::StaticSpeedMobilityModel() [constructor] + ## constant-position-mobility-model.h: ns3::ConstantPositionMobilityModel::ConstantPositionMobilityModel() [constructor] cls.add_constructor([]) - ## static-speed-mobility-model.h: void ns3::StaticSpeedMobilityModel::SetVelocity(ns3::Vector const & speed) [member function] - cls.add_method('SetVelocity', - 'void', - [param('ns3::Vector const &', 'speed')]) - ## static-speed-mobility-model.h: ns3::Vector ns3::StaticSpeedMobilityModel::DoGetPosition() const [member function] + ## constant-position-mobility-model.h: ns3::Vector ns3::ConstantPositionMobilityModel::DoGetPosition() const [member function] cls.add_method('DoGetPosition', 'ns3::Vector', [], is_const=True, visibility='private', is_virtual=True) - ## static-speed-mobility-model.h: void ns3::StaticSpeedMobilityModel::DoSetPosition(ns3::Vector const & position) [member function] + ## constant-position-mobility-model.h: void ns3::ConstantPositionMobilityModel::DoSetPosition(ns3::Vector const & position) [member function] cls.add_method('DoSetPosition', 'void', [param('ns3::Vector const &', 'position')], visibility='private', is_virtual=True) - ## static-speed-mobility-model.h: ns3::Vector ns3::StaticSpeedMobilityModel::DoGetVelocity() const [member function] + ## constant-position-mobility-model.h: ns3::Vector ns3::ConstantPositionMobilityModel::DoGetVelocity() const [member function] + cls.add_method('DoGetVelocity', + 'ns3::Vector', + [], + is_const=True, visibility='private', is_virtual=True) + return + +def register_Ns3ConstantVelocityMobilityModel_methods(root_module, cls): + ## constant-velocity-mobility-model.h: ns3::ConstantVelocityMobilityModel::ConstantVelocityMobilityModel(ns3::ConstantVelocityMobilityModel const & arg0) [copy constructor] + cls.add_constructor([param('ns3::ConstantVelocityMobilityModel const &', 'arg0')]) + ## constant-velocity-mobility-model.h: static ns3::TypeId ns3::ConstantVelocityMobilityModel::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## constant-velocity-mobility-model.h: ns3::ConstantVelocityMobilityModel::ConstantVelocityMobilityModel() [constructor] + cls.add_constructor([]) + ## constant-velocity-mobility-model.h: void ns3::ConstantVelocityMobilityModel::SetVelocity(ns3::Vector const & speed) [member function] + cls.add_method('SetVelocity', + 'void', + [param('ns3::Vector const &', 'speed')]) + ## constant-velocity-mobility-model.h: ns3::Vector ns3::ConstantVelocityMobilityModel::DoGetPosition() const [member function] + cls.add_method('DoGetPosition', + 'ns3::Vector', + [], + is_const=True, visibility='private', is_virtual=True) + ## constant-velocity-mobility-model.h: void ns3::ConstantVelocityMobilityModel::DoSetPosition(ns3::Vector const & position) [member function] + cls.add_method('DoSetPosition', + 'void', + [param('ns3::Vector const &', 'position')], + visibility='private', is_virtual=True) + ## constant-velocity-mobility-model.h: ns3::Vector ns3::ConstantVelocityMobilityModel::DoGetVelocity() const [member function] cls.add_method('DoGetVelocity', 'ns3::Vector', [], diff --git a/bindings/python/ns3_module_wifi.py b/bindings/python/ns3_module_wifi.py index 71b951c39..729bbb7fc 100644 --- a/bindings/python/ns3_module_wifi.py +++ b/bindings/python/ns3_module_wifi.py @@ -1336,6 +1336,22 @@ def register_Ns3WifiMac_methods(root_module, cls): 'void', [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'linkDown')], is_pure_virtual=True, is_virtual=True) + ## wifi-mac.h: void ns3::WifiMac::NotifyTx(ns3::Ptr packet) [member function] + cls.add_method('NotifyTx', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet')]) + ## wifi-mac.h: void ns3::WifiMac::NotifyTxDrop(ns3::Ptr packet) [member function] + cls.add_method('NotifyTxDrop', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet')]) + ## wifi-mac.h: void ns3::WifiMac::NotifyRx(ns3::Ptr packet) [member function] + cls.add_method('NotifyRx', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet')]) + ## wifi-mac.h: void ns3::WifiMac::NotifyRxDrop(ns3::Ptr packet) [member function] + cls.add_method('NotifyRxDrop', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet')]) return def register_Ns3WifiModeChecker_methods(root_module, cls): @@ -1528,6 +1544,34 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'ns3::WifiMode', [], is_static=True) + ## wifi-phy.h: void ns3::WifiPhy::NotifyTxBegin(ns3::Ptr packet) [member function] + cls.add_method('NotifyTxBegin', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet')]) + ## wifi-phy.h: void ns3::WifiPhy::NotifyTxEnd(ns3::Ptr packet) [member function] + cls.add_method('NotifyTxEnd', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet')]) + ## wifi-phy.h: void ns3::WifiPhy::NotifyTxDrop(ns3::Ptr packet) [member function] + cls.add_method('NotifyTxDrop', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet')]) + ## wifi-phy.h: void ns3::WifiPhy::NotifyRxBegin(ns3::Ptr packet) [member function] + cls.add_method('NotifyRxBegin', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet')]) + ## wifi-phy.h: void ns3::WifiPhy::NotifyRxEnd(ns3::Ptr packet) [member function] + cls.add_method('NotifyRxEnd', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet')]) + ## wifi-phy.h: void ns3::WifiPhy::NotifyRxDrop(ns3::Ptr packet) [member function] + cls.add_method('NotifyRxDrop', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet')]) + ## wifi-phy.h: void ns3::WifiPhy::NotifyPromiscSniff(ns3::Ptr packet) [member function] + cls.add_method('NotifyPromiscSniff', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet')]) return def register_Ns3WifiRemoteStationManager_methods(root_module, cls): diff --git a/src/devices/csma/csma-net-device.cc b/src/devices/csma/csma-net-device.cc index 7ad16fd4e..6c145317f 100644 --- a/src/devices/csma/csma-net-device.cc +++ b/src/devices/csma/csma-net-device.cc @@ -831,7 +831,7 @@ CsmaNetDevice::Receive (Ptr packet, Ptr senderDevice) m_promiscSnifferTrace (originalPacket); if (!m_promiscRxCallback.IsNull ()) { - m_promiscRxCallback (this, packet->Copy (), protocol, header.GetSource (), header.GetDestination (), packetType); + m_promiscRxCallback (this, packet, protocol, header.GetSource (), header.GetDestination (), packetType); } // diff --git a/src/devices/emu/emu-net-device.cc b/src/devices/emu/emu-net-device.cc index 3bed40217..1ab91c0a7 100644 --- a/src/devices/emu/emu-net-device.cc +++ b/src/devices/emu/emu-net-device.cc @@ -646,7 +646,7 @@ EmuNetDevice::ForwardUp (uint8_t *buf, uint32_t len) if (!m_promiscRxCallback.IsNull ()) { - m_promiscRxCallback (this, packet->Copy (), protocol, header.GetSource (), header.GetDestination (), packetType); + m_promiscRxCallback (this, packet, protocol, header.GetSource (), header.GetDestination (), packetType); } // diff --git a/src/devices/point-to-point/point-to-point-net-device.cc b/src/devices/point-to-point/point-to-point-net-device.cc index 277be2095..4a4376e52 100644 --- a/src/devices/point-to-point/point-to-point-net-device.cc +++ b/src/devices/point-to-point/point-to-point-net-device.cc @@ -341,8 +341,7 @@ PointToPointNetDevice::Receive (Ptr packet) if (!m_promiscCallback.IsNull ()) { - Ptr pktCopy = packet->Copy (); - m_promiscCallback (this, pktCopy, protocol, GetRemote (), GetAddress (), NetDevice::PACKET_HOST); + m_promiscCallback (this, packet, protocol, GetRemote (), GetAddress (), NetDevice::PACKET_HOST); } m_rxCallback (this, packet, protocol, GetRemote ()); @@ -567,7 +566,7 @@ PointToPointNetDevice::SetReceiveCallback (NetDevice::ReceiveCallback cb) void PointToPointNetDevice::SetPromiscReceiveCallback (NetDevice::PromiscReceiveCallback cb) { - NS_FATAL_ERROR ("not implemented"); + NS_FATAL_ERROR ("PointToPointNetDevice::SetPromiscReceiveCallback(): Not implemented"); m_promiscCallback = cb; } diff --git a/src/devices/tap-bridge/tap-bridge.cc b/src/devices/tap-bridge/tap-bridge.cc index 1103f8c67..3428adb1e 100644 --- a/src/devices/tap-bridge/tap-bridge.cc +++ b/src/devices/tap-bridge/tap-bridge.cc @@ -769,10 +769,10 @@ TapBridge::ReceiveFromBridgedDevice ( // percolate up through the stack on the Linux host. // // The ns-3 net device that is the source of these bits has removed the MAC - // header, so we have to put one back on. + // header, so we have to put one back on. This is a callback and by convention + // uses Ptr, so we have to muck with a copy. // Ptr p = packet->Copy (); - EthernetHeader header = EthernetHeader (false); header.SetSource (from); header.SetDestination (to); diff --git a/src/devices/wifi/wifi-net-device.cc b/src/devices/wifi/wifi-net-device.cc index b34fffc8d..d5bd21574 100644 --- a/src/devices/wifi/wifi-net-device.cc +++ b/src/devices/wifi/wifi-net-device.cc @@ -23,8 +23,6 @@ #include "wifi-remote-station-manager.h" #include "wifi-channel.h" #include "ns3/llc-snap-header.h" -#include "ns3/ethernet-header.h" -#include "ns3/ethernet-trailer.h" #include "ns3/packet.h" #include "ns3/uinteger.h" #include "ns3/pointer.h" @@ -310,7 +308,7 @@ WifiNetDevice::ForwardUp (Ptr packet, Mac48Address from, Mac48Address to if (!m_promiscRx.IsNull ()) { - m_promiscRx (this, packet->Copy (), llc.GetType (), from, to, type); + m_promiscRx (this, packet, llc.GetType (), from, to, type); } } diff --git a/src/devices/wifi/wifi-net-device.h b/src/devices/wifi/wifi-net-device.h index 7c5588223..2bee1d2f9 100644 --- a/src/devices/wifi/wifi-net-device.h +++ b/src/devices/wifi/wifi-net-device.h @@ -122,14 +122,6 @@ private: TracedCallback, Mac48Address> m_rxLogger; TracedCallback, Mac48Address> m_txLogger; - /** - * At the top of the MAC level, we do what many folks do and make the wifi - * packets look like Ethernet packets coming in and out of the "driver." If - * you are interested in seeing all of the wifi details, you should use the - * much lower level PHY promiscuous sniffer trace. - */ - void SniffPacket (Ptr packet, Mac48Address to, Mac48Address from, uint16_t type); - uint32_t m_ifIndex; std::string m_name; bool m_linkUp;